系列文章目录
普通关联查询和 左连接由连接的区别
最近发现一段sql 就是普通的关联查询,在项目需求中还挺实用的,我就在想为什么不用左连接/右连接之类的呢,以前不大多时候用左连接吗
实际上它们各有优势,根据需求来
我们的需求是
查询用户信息及用户购买的商品信息
Select
user.id,
user.username,
user.address,
orders.id orders_id,
orders.user_id,
orders.number,
orders.createtime,
orders.note,
orderdetail.id detail_id,
orderdetail.items_id,
orderdetail.items_num,
items.name items_name,
items.detail items_detail
FROM
USER,orders,orderdetail,items
WHERE user.id
= orders.user_id
AND orders.id
= orderdetail.orders_id
AND orderdetail.items_id
= items.id
其实这样的关联查询就能很好的满足我们的需求:查询用户信息及用户购买的商品信息
我改成左连接之后再看看效果
Select
user.id,
user.username,
user.address,
orders.id orders_id,
orders.user_id,
orders.number,
orders.createtime,
orders.note,
orderdetail.id detail_id,
orderdetail.items_id,
orderdetail.items_num,
items.name items_name,
items.detail items_detail
FROM
USER left join orders on USER.id=orders.user_id
left join orderdetail on orders.id=orderdetail.orders_id
left join items on orderdetail.items_id= items.id
1、即左连接其实是以最左边的那张表为主表,会把最左边的那张表的所有数据全部显示出来,没有关联到的字段就显示为空
而关联查询只会把相关联的数据显示出来
(自己的总结)
2、要记住关联查询和连接查询的等式(连接查询就是join)比如这里的4张表 就是3个=,
同理可得,
2张表就是1个=
4张表就是3个=
所以是表数量-1 等式 这样的规律
也所以是表数量-1 left join 这样的规律