MySQL LEFT JOIN只在某些行上?

时间:2013-06-21 16:14:28

标签: mysql

我有以下MySQL表:

enter image description here

在此表中,我想LEFT JOIN另一个表,但仅限于 action == 2 action == 3 的行。这可能通过某种方式指定LEFT JOIN部分,或者我需要做更多的SELECT和UNISON吗?

编辑:action = 1的行只能包含LEFT JOIN中的NULL值。

2 个答案:

答案 0 :(得分:3)

SELECT ...
FROM sometable
LEFT JOIN jointable ON (sometable.field = jointable.field AND (action IN (2,3)))

你可以在JOIN条件下拥有任意逻辑。它最终要做的就是归结为真/假值。如果结果为true,则连接成功并包含连接的字段。如果结果为false,则不会对该特定行组合进行连接。

答案 1 :(得分:1)

SELECT * FROM table AS t LEFT JOIN another_table AS at ON t.id = at.id WHERE t.action = 2 OR t.action = 3

这不能为您提供您想要的结果吗?