mysql from和join的结果为什么不相同

例子

通过当前数据的parent_id获取父节点数据的名称(name),在同一张表
通过where连接双表

SELECT C.*, W.name as nickname FROM `warehouse` as C, warehouse as W 
WHERE C.parent_id = W.id

这里无法显示一级父节点,因为一级父节点没有对应的id name,所以where直接将一级节点全部过滤掉了

通过left join连接

SELECT C.*, W.`name` as nickname 
from `factory_warehouse` as C 
LEFT JOIN factory_warehouse as W on C.parent_id = W.id

这个在nickname里面就会有,原因是以C为主表,W为右表,进行左连接,主表里面的内容是全是显示,而符合条件的右表里面的内容才显示,所以通过left join可以在nickname里面可以存在null,数据也是全的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值