0

我有以下 MySQL 表:

在此处输入图像描述

在这张桌子上,我想 LEFT JOIN 另一个表,但只适用于带有action == 2or的行action == 3。这是否可以通过以某种方式指定 LEFT JOIN 部分来使用一个 SELECT,还是我需要做更多的 SELECT 和一个 UNISON?

编辑:action = 1 的行可以简单地包含来自 LEFT JOIN 的 NULL 值。

4

2 回答 2

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

您可以在 JOIN 条件中有任意逻辑。它最终要做的就是归结为一个真/假值。如果结果为真,则连接成功,并包含连接的字段。如果结果为假,则该特定行组合不会发生连接。

于 2013-06-21T16:16:26.810 回答
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

这不会给你想要的结果吗?

于 2013-06-21T16:16:32.587 回答