0
点赞
收藏
分享

微信扫一扫

mysql left join中on和where条件限制区别


现在有两张表,部门表,和用户表

mysql left join中on和where条件限制区别_mysql

mysql left join中on和where条件限制区别_数据库_02

 

 现在需要查询出各个部门里面女性的数量

下面两种写法对比下就知道了

SELECT
a.NAME,
count( b.xb ) AS 女性人数
FROM
org a
LEFT JOIN user_b b ON a.`name` = b.bm
AND b.xb = '女'
GROUP BY
a.`name`;

mysql left join中on和where条件限制区别_数据_03

 正常

SELECT
a.NAME,
count( b.xb ) AS 女性人数
FROM
org a
LEFT JOIN user_b b ON a.`name` = b.bm
WHERE
b.xb = '女'
GROUP BY
a.`name`;

mysql left join中on和where条件限制区别_数据_04

这里明显就不对了.

区别很明显,where里面的条件会影响最后显示的数据,即限制左表的条件 

总结:mysql在left join语句中,左表过滤条件放在where条件中,右表过滤条件应该放on中

举报

相关推荐

0 条评论