php - 在MySQL上的左联接和条件-LMLPHP

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

连接后的表应该看起来

php - 在MySQL上的左联接和条件-LMLPHP

查询将像

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 )的行

预先感谢您的帮助

最佳答案

left join工作正常。当您在第二张表上有条件时,它需要进入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

10-05 20:07