left outer join的on不起作用

Posted 技术为王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了left outer join的on不起作用相关的知识,希望对你有一定的参考价值。

left outer join的on不起作用

 

https://msdn.microsoft.com/zh-cn/library/ms177634.aspx?f=255&MSPPError=-2147217396
https://social.msdn.microsoft.com/Forums/zh-CN/e1198287-96d5-4e9e-b1d0-d2d4f5ba4e20/inner-joinonwhere?forum=sqlserverzhchs

 

不管是mysql和sqlserver都一样


SELECT
u.* ,fm.*
FROM
tt1 u
LEFT JOIN tt2 fm
ON u.name = fm.name
and u.CID = 901
这些写and u.CID = 901 不起作用的

SELECT
u.* ,fm.*
FROM
tt1 u
LEFT JOIN tt2 fm
ON u.name = fm.name
where u.CID = 901
这样写where u.CID = 901 才起作用
我查了一下msdn
https://social.msdn.microsoft.com/Forums/zh-CN/e1198287-96d5-4e9e-b1d0-d2d4f5ba4e20/inner-joinonwhere?forum=sqlserverzhchs
没搞明白,为何and u.CID = 901 不起作用

 

如果是inner join的话,SELECT
u.* ,fm.*
FROM
tt1 u
LEFT JOIN tt2 fm
ON u.name = fm.name
and u.CID = 901
这样写and u.CID = 901会起作用的

以上是关于left outer join的on不起作用的主要内容,如果未能解决你的问题,请参考以下文章

最全解释Mysql 的join中on与where 过滤条件差异

ORACLE:使用 LEFT JOIN 时物化视图不起作用

LEFT OUTER JOIN 在 bigquery 上创建子查询时出错

SQL 查询条件放在LEFT OUTER JOIN 的ON语句后与放在WHERE中的区别

Impala:AnalysisException:LEFT OUTER JOIN 需要 ON 或 USING 子句

熊猫:LEFT OUTER JOIN where(ON)2个匹配的条件[重复]