a left join b 在where后加B表的过滤条件时,成了inner join

今天在写sql查询的时候,发现select * from A left join B on A.c=B.c where B.m>1竟然和select * from A inner join B on A.c=B.c where B.m>1等价,即left join 成了inner join,但是查询结果要求以A表为主表,在B表中未匹配到的也要返回,所以此处应把对B表的过滤加到on条件中,即为select * from A left join B on A.c=B.c ond B.m>1

猜你喜欢

转载自blog.csdn.net/u013272574/article/details/88064253