多表联合查询实质
2018-08-04 本文已影响30人
迷糊银儿
实质:将前边部分查出的结果再与后续的表联合查询
select count(*) from animals; # 5条记录
select count(*) from user; # 4条记录
select count(*) from area; # 4条记录
1.两笔联合查询,不加联合条件;
结果分析:结果为两表记录完全组合,结果数:5*4=20
select * from animals
join USER
![](https://img.haomeiwen.com/i3673583/43876d4e49ce51d0.png)
2.两表联合查询,增加联合条件限制;
结果分析:从最初的20条结果集中取得符合联合条件的记录数--2条
select * from animals
join USER on user.id=animals.user_id
![](https://img.haomeiwen.com/i3673583/e803662a087c11db.png)
3.两表查询的基础上再联合一个表area为3表查询,不加联合条件;
结果分析:结果为将2中结果集与area联合,结果记录数--2*4=8条
select * from animals
join USER on user.id=animals.user_id
join area
![](https://img.haomeiwen.com/i3673583/b36e3496aaf654d1.png)
4.增加与area联合查询的联合条件;
结果分析:从3中的结果集8条记录中取的符合新增联合条件的记录数--1条
select * from animals
join USER on user.id=animals.user_id
join area on area.id=user.td;
![](https://img.haomeiwen.com/i3673583/62769faae2dddfec.png)