SQL多表查询

SQL多表查询

多表关系

  • 一对一:用户和用户详情

    • 维护:在任意一个表中建立外键关联对方的主键,在外键上添加约束unique唯一标志。
  • 一对多:员工和部门的关系

    • 维护:在多的一方建立外键关联对方的主键。
  • 多对多:学生和课程的关系

    • 维护:建立中间表,中间表至少包含两个外键,分别关联两方主键。

多表查询分类

连接查询(join on)&& 联合查询(union,union all)&& 子查询()

1、连接查询:内连接、外连接、自连接

  • 内连接:相当于查询A,B交集部分数据;
  • 外连接:左外/右外,查询左表/右表所有数据,以及两张表交集部分数据;
  • 自连接:当前表与自身连接进行查询,自连接必须使用表别名;

内连接:分为显示和隐式的语法

select 字段列表 from1,2 where 条件; #隐式
select 字段列表 from1 [inner] join2 on 连接条件; #显式

外连接:分为左外连接和右外连接

select 字段列表 from1 left join2 on 条件; #左外连接
select 字段列表 from1 right join2 on 条件; #右外连接

自连接:自连接可以是内连接或者外连接

select 字段列表 from 表A 别名a join 表A 别名aa on 条件; 

2、联合查询:把多次查询的结果合并起来

联合查询:将两个查询结果字段直接合并在一个表中,要求列数必须保持一致,字段类型也需要保持一致。

# union all 将两个结果集进行并操作,不会去重
select * from 表名 where 条件 union all select * from 表名 where 条件。
# union 将两个结果集进行并操作,并去重
select * from 表名 where 条件 union select * from 表名 where 条件。

3、子查询:嵌套查询

子查询:表量子查询,列子查询,行子查询,表子查询,下面说明各种查询常用的运算符:

表量子查询:=,>,<,<>,>=,<=

列子查询:in,not in,any,some,all

行/表子查询:当子查询为单条数据时用’=‘ 否则用in即可,distinct可对查询结果去重

select * from 表名 where (字段名,字段名2...) = (select 字段名1,字段名2 from 表名 where 条件);

select * from (select * from 表名 where 条件) left join 表名 on 条件;

相关推荐

  1. Sql查询

    2024-07-14 18:56:07       30 阅读
  2. SQL查询

    2024-07-14 18:56:07       23 阅读
  3. SQL查询

    2024-07-14 18:56:07       18 阅读
  4. sql server查询

    2024-07-14 18:56:07       56 阅读
  5. SQL进阶:查询

    2024-07-14 18:56:07       56 阅读

最近更新

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

    2024-07-14 18:56:07       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 18:56:07       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 18:56:07       45 阅读
  4. Python语言-面向对象

    2024-07-14 18:56:07       55 阅读

热门阅读

  1. 高通平台sensor初始化步骤

    2024-07-14 18:56:07       22 阅读
  2. pid内容索引

    2024-07-14 18:56:07       16 阅读
  3. C++ 异常

    2024-07-14 18:56:07       18 阅读
  4. 嵌入式是Linux:shell使用解析

    2024-07-14 18:56:07       22 阅读
  5. 力扣题解(不同的子序列)

    2024-07-14 18:56:07       23 阅读
  6. 1820D-The Butcher

    2024-07-14 18:56:07       19 阅读
  7. 第二节 shell脚本基础(1)(2)

    2024-07-14 18:56:07       14 阅读
  8. 序列化和反序列化

    2024-07-14 18:56:07       18 阅读