SQL连接语法:将数据过滤器置于" on子句"或"其中clasuse"?

时间:2014-04-22 14:34:52

标签: mysql sql database

例如,我有一个SQL查询:

 select table1.*, table2.* from table1 
 left join table2 on table1.id=table2.id AND table2.someCol>123 (put it here)<p>
 where table2.someCol>123 (or put it here)
似乎两个位置都可以放置过滤条件,并且是SAME含义,是吗?

1 个答案:

答案 0 :(得分:5)

不,它不一样。当你左/右加入时,这很重要。如果在Where子句中引用where条件引用左或右连接表,则基本上将其转换为内连接。如果您添加OR referenced_left_or_right_joined_column IS NULL,则会再次进行左侧或右侧加入。