次のMySQLテーブルがあります:
このテーブルで、別のテーブルを LEFT JOIN したいのですが、action == 2
orを含む行にのみaction == 3
です。何らかの方法で LEFT JOIN 部分を指定することにより、1 つの SELECT でこれが可能ですか、それともさらに SELECT と UNISON を行う必要がありますか?
編集: アクション = 1 の行には、LEFT JOIN からの NULL 値を単純に含めることができます。
次のMySQLテーブルがあります:
このテーブルで、別のテーブルを LEFT JOIN したいのですが、action == 2
orを含む行にのみaction == 3
です。何らかの方法で LEFT JOIN 部分を指定することにより、1 つの SELECT でこれが可能ですか、それともさらに SELECT と UNISON を行う必要がありますか?
編集: アクション = 1 の行には、LEFT JOIN からの NULL 値を単純に含めることができます。
SELECT ...
FROM sometable
LEFT JOIN jointable ON (sometable.field = jointable.field AND (action IN (2,3)))
JOIN 条件に任意のロジックを含めることができます。最終的に行う必要があるのは、真/偽の値に煮詰めることだけです。結果が true の場合、結合は成功し、結合されたフィールドが含まれます。結果が false の場合、その特定の行の組み合わせに対して結合は行われません。
SELECT * FROM table AS t LEFT JOIN another_table AS at ON t.id = at.id WHERE t.action = 2 OR t.action = 3
これはあなたが探している結果を与えませんか?