0

次のMySQLテーブルがあります:

ここに画像の説明を入力

このテーブルで、別のテーブルを LEFT JOIN したいのですが、action == 2orを含む行にのみaction == 3です。何らかの方法で LEFT JOIN 部分を指定することにより、1 つの SELECT でこれが可能ですか、それともさらに SELECT と UNISON を行う必要がありますか?

編集: アクション = 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 条件に任意のロジックを含めることができます。最終的に行う必要があるのは、真/偽の値に煮詰めることだけです。結果が true の場合、結合は成功し、結合されたフィールドが含まれます。結果が false の場合、その特定の行の組み合わせに対して結合は行われません。

于 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 に答える