MySQL多表查询

多表查询

内连接

查询出两张表中的公共部分,也就是查询两张表的交集。

语法格式:

# 显式内连接
select 字段列表 from1 inner join2 on1,字段名1 =2.字段名2;
# 隐式内连接
select 字段列表 from1,2 where 条件;

注意:inner join 是内连接查询的关键字,on 后面跟连接查询的条件。

外连接

左外连接

左表为主,根据条件查询右表数据,如果根据条件查询右表数据不存在则用null来填充。

语法格式:

select 字段列表 from1 left join2 on1,字段名1 =2.字段名2;

注意: left join 是左外连接查询的关键字,on 后跟两张表连接查询的条件。其中表1是左表,表2是右表。

右外连接

右表为主,根据条件查询左表数据,如果根据条件查询左表数据不存在则用null来填充。

语法格式:

select 字段列表 from1 right join2 on1,字段名1 =2.字段名2;

注意: right join 是右外连接查询的关键字,on 后跟两张表连接查询的条件。其中表1是左表,表2是右表。

自连接

自连接,就是自己连接自己

语法格式:

-- 格式一:
select 字段列表 from 表a 别名a join 表a 别名b on 条件;
-- 格式二:
select 字段列表 from 表a 别名a, 表a 别名b where 条件;

注意:必须为数据表定义别名

联合查询

联合查询就是将多次的查询结果合并起来,形成一个新的结果集。使用联合查询的关键字有unionunion all

语法格式:

select * from1
union [all]
select * from2

注意:

  • 联合查询的多张表的列数、列顺序以及字段类型要保持一致;
  • union 会对合并之后的数据去重;
  • union all 则会将查询到的所有数据直接合并。

相关推荐

  1. MySQL - 查询

    2024-02-20 00:06:02       64 阅读
  2. MySQL-查询

    2024-02-20 00:06:02       74 阅读
  3. MySQL查询

    2024-02-20 00:06:02       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-20 00:06:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-20 00:06:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-20 00:06:02       82 阅读
  4. Python语言-面向对象

    2024-02-20 00:06:02       91 阅读

热门阅读

  1. 洛谷P8813 [CSP-J 2022] 乘方题解

    2024-02-20 00:06:02       52 阅读
  2. 5G LAN

    2024-02-20 00:06:02       45 阅读
  3. 自动化测试面试(一)

    2024-02-20 00:06:02       54 阅读
  4. MongoDB聚合运算符:$arrayToObject

    2024-02-20 00:06:02       52 阅读
  5. Android 11.0 SystemUI禁用长按recent键的分屏功能

    2024-02-20 00:06:02       49 阅读
  6. 【SpringBoot4】如何理解SpringBoot的约定大于配置

    2024-02-20 00:06:02       47 阅读