フィールド user1 と user2 を持つテーブル A と、user3 と user4 のペアを持つテーブル B があります。
user1/user2 の組み合わせがテーブル B にもあるテーブル A から任意の行を検索できるようにしたいと考えています。
順番は関係ありません。たとえば、user1=Mike、user2=Joe のテーブル A は、user3=Joe および user4=Mike のテーブル B と一致します。
フィールド user1 と user2 を持つテーブル A と、user3 と user4 のペアを持つテーブル B があります。
user1/user2 の組み合わせがテーブル B にもあるテーブル A から任意の行を検索できるようにしたいと考えています。
順番は関係ありません。たとえば、user1=Mike、user2=Joe のテーブル A は、user3=Joe および user4=Mike のテーブル B と一致します。
おそらくor
、結合で明示的に使用するだけです:
select user1, user2
from tableA join tableB on
(user1=user3 and user2=user4) or
(user1=user4 and user2=user3)
...しかし、それは一粒の塩で考えてください。おそらく少なくとも少しの理由で、結合を使いすぎていると非難されてきました。
select a.user1, a.user2 from a, b
where (a.user1 == b.user3 and a.user2 == b.user4)
or (a.user1 = b.user4 and a.user2 = b.user3);