我有以下 MySQL 表:
在这张桌子上,我想 LEFT JOIN 另一个表,但只适用于带有action == 2
or的行action == 3
。这是否可以通过以某种方式指定 LEFT JOIN 部分来使用一个 SELECT,还是我需要做更多的 SELECT 和一个 UNISON?
编辑:action = 1 的行可以简单地包含来自 LEFT JOIN 的 NULL 值。
我有以下 MySQL 表:
在这张桌子上,我想 LEFT JOIN 另一个表,但只适用于带有action == 2
or的行action == 3
。这是否可以通过以某种方式指定 LEFT JOIN 部分来使用一个 SELECT,还是我需要做更多的 SELECT 和一个 UNISON?
编辑:action = 1 的行可以简单地包含来自 LEFT JOIN 的 NULL 值。
SELECT ...
FROM sometable
LEFT JOIN jointable ON (sometable.field = jointable.field AND (action IN (2,3)))
您可以在 JOIN 条件中有任意逻辑。它最终要做的就是归结为一个真/假值。如果结果为真,则连接成功,并包含连接的字段。如果结果为假,则该特定行组合不会发生连接。
SELECT * FROM table AS t LEFT JOIN another_table AS at ON t.id = at.id WHERE t.action = 2 OR t.action = 3
这不会给你想要的结果吗?