mysql - 这句sql做链接,为什么不能只能查出两条,不是应该三条吗?
怪我咯
怪我咯 2017-04-17 15:58:02
[MySQL讨论组]
SELECT
    a.*
FROM
    qdwyc_zlgs a
LEFT JOIN qdwyc_car b ON a.id = b.car_zlgs
WHERE a.`status`=0
AND b.`status`=0

qdwyc_zlgs表

qdwyc_car表

左链接不是应该查出至少三条不同的吗,为什么没有id是338这一条呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(5)
黄舟

LEFT JOIN 关键字会从左表 那里返回所有的行,即使在右表 中没有匹配的行。但是这边你连表后还判断了b.status=0 这里把338的过滤了

天蓬老师

因为338这一条在qdwyc_car表里没有,b.status=0把他过滤了。

ringa_lee

因为左连接之后338这行中跟b表相关的字段都是空,所以你的where条件 b.status=0就把这行过滤掉了,你把 and b.status=0条件去掉看一下结果就明白了。

迷茫

感谢邀请
LEFT JOIN的语法是按照左边的表为主,根据关联条件如果左边的表有值得话,然后右边的表没有值,会在相应的字段上加上默认值,然后你的b.status=0,应该把这条记录过滤掉了,如果你想证实下的话可以把b.status=0这个条件给去掉。

ringa_lee

left join 是以左表为主。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号