作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在某处读到右表 (j.jobStatus="A") 上的条件必须放在 where 子句之前。
1) 和 2) 有区别吗?
1)
SELECT c.cmpID
FROM company AS c
LEFT JOIN jobs AS j ON c.jobID=j.jobID
WHERE j.jobStatus="A" AND c.cmID > 10
2)
SELECT c.cmpID
FROM company AS c
LEFT JOIN jobs AS j ON c.jobID=j.jobID AND j.jobStatus="A"
WHERE c.cmID > 10
最佳答案
不同之处在于 WHERE j.jobStatus = "A"
使 LEFT JOIN
无效,本质上使其成为 INNER JOIN
。 j 为 NULL 的任何行都会被该条件过滤掉。
如果条件在 ON
子句上,它仍然允许为 jobs 表返回 NULL
行(即公司表中没有jobs 表中的匹配行)。
关于mysql加入: Where to put the condition that goes on the right table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16717249/
我是一名优秀的程序员,十分优秀!