在Mysql上左连接和条件

时间:2015-11-27 20:01:31

标签: php mysql join

enter image description here

我想要这样一个查询,它返回表1 jointest1中的所有行以及与表2 jointest2匹配连接条件的行,但jointest2中的重复行除外

加入后的表格应该是

Table After join

查询将像

SELECT * FROM jointest1 LEFT JOIN jointest2 ON jointest1.id=jointest2.j1_id WHERE jointest2.id NOT IN ( 2 )

但是当我添加WHERE jointest2.id NOT IN ( 2 )时左连接不起作用,它只返回jointest1.id=jointest2.j1_id and NOT IN ( 2 )

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

left join工作正常。如果 second 表中有条件,则需要进入on子句:

SELECT *
FROM jointest1 LEFT JOIN
     jointest2
     ON jointest1.id = jointest2.j1_id AND
        jointest2.id NOT IN ( 2 );

否则,条件(偶NOT IN)将返回NULL,将LEFT JOIN变为INNER JOIN