多表查询介绍

之前的查询语句都是单表查询语句,但由于业务之间相互关联,各个表结构之间也存在着某种联系。

1.多表关系

(1).一对一

(2).一对多(多对一)

(3).多对多

2.多表查询概述

如果不对多表查询的结果加以限制,查询的结果就有大量无效的数据,所以要消除无效的笛卡尔积。

3.内连接

(1).隐式内连接 连接条件写在where中

(2).显式内连接 通过 inner join 来连接 其中 inner可以省略,在 on 后面跟上连接条件

4.外连接

(1).左外连接

(2).右外连接

5.自连接

注意自连接时,必须要给表起别名,不然分不清到底查询返回的是哪一张表的字段。

6.联合查询

(1).union

(2).union all

联合查询时,不是所有查询都能合并,必须是上面查询返回的字段列表和下面查询的字段列表数量一致,且类型相同

union all会把所有结果合并,不考虑去重,而union会多进行一步去重操作

----------------------------------------

子查询:就是查询嵌套中的语句,一般为dql语句

1.标量子查询,指的是子查询的结果为一行一列,也就是只有单个数据

2.行子查询,指的是子查询的结果为一行多列,常用的操作符为 =,<>,in,not in

3.列子查询,指的是子查询的结果为一列多行,经常使用in ,not in,all,any,some关键字

4.表子查询,指的是子查询的结果为多行多列,将子查询作为一张新的临时表,进行联查。常用的操作符为in  

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值