011_多表查询

1. 查询user表的数据

2. 查询orders表的数据

3. 连接的使用

3.1. 之前, 我们已经学会了如何在一张表中读取数据, 这是相对简单的, 但是在真正的应用中经常需要从多个数据表中读取数据。

3.2. 笛卡尔积, 查询出两张表的乘积, 查出来的结果没有什么实际意义

3.3. SQL join子句用于把来自两个或多个表的行结合起来, 基于这些表之间的共同字段。

3.4. JOIN按照功能大致分为如下三类

3.4.1. inner join(内连接,或等值连接): 获取两个表中字段匹配关系的记录。

3.4.2. left join(左连接): 获取左表所有记录, 即使右表没有对应匹配的记录。

3.4.3. right join(右连接)与left join相反, 用于获取右表所有记录, 即使左表没有对应匹配的记录。

4. 内连接

4.1. inner join关键字在表中存在至少一个匹配时返回行。

4.2. inner join显示内连接, 查询用户表和订单表中用户id相等的数据。

4.3. inner join与join是相同的。

4.4. 隐式内连接, 添加where条件, 和inner join显示内连接是等价的。

4.5. 隐式内连接和显示内连接的区别

4.5.1. 隐式内连接: where条件是在临时表生成好后, 再对临时表进行过滤的条件。

4.5.2. 显示内连接: on条件是在生成临时表时使用的条件, 带着条件去查询结果, 执行效率高。

5. 左连接

5.1. left join关键字从左表(table1)返回所有的行, 即使右表(table2)中没有匹配。如果右表中没有匹配, 则结果为null。

5.2. left join查询用户表的所有数据。

5.3. 在某些数据库中left join称为left outer join。

5.4. 左连接添加where子句, 查询左表独有数据。

5.5. 查询用户表独有的数据。

6. 右连接

6.1. right join关键字从右表(table2)返回所有的行, 即使左表(table1)中没有匹配。如果左表中没有匹配, 则结果为null。

6.2. right join查询订单表的所有数据。

6.3. 在某些数据库中, right join称为right outer join。

6.4. 右连接添加where子句, 查询右表独有数据。

6.5. 查询订单表独有的数据。

7. 左、内、右连接返回数据

7.1. inner join: 如果表中有至少一个匹配, 则返回行。

7.2. left join: 即使右表中没有匹配, 也从左表返回所有的行。

7.3. right join: 即使左表中没有匹配, 也从右表返回所有的行。

7.4. 左、内、右连接图解

7.5. 连接的五种用法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值