私はオーダー - サプライヤの関係を持つプレーンなテーブルを持っています。どのサプライヤーがどのオーダーに参加したかを示します。明らかに、1件の注文が複数のサプライヤ持つことができますSELECTグループに別のテーブルの値が含まれています
+---------+------------+
| OrderId | SupplierId |
+---------+------------+
| O_1 | S_1 |
+---------+------------+
| O_1 | S_3 |
+---------+------------+
| O_2 | S_1 |
+---------+------------+
| O_2 | S_2 |
+---------+------------+
| O_2 | S_999 |
+---------+------------+
をそして私はそのようなサプライヤー(入力データ)のペアを含む別のテーブルがあります。
+--------------+--------------+
| SupplierId_1 | SupplierId_2 |
+--------------+--------------+
| S_1 | S_2 |
+--------------+--------------+
| S_2 | S_3 |
+--------------+--------------+
注(があるので、もしペアが、一意であることをS_1、S_2)ペアは(S_2、S_1)ペアが存在しません。しかし、ペアがどの順番で来るかを言うことは不可能です:それは(S_1、S_2)または(S_2、S_1)として来ることができますが、両方ではありません。
これらのペアからサプライヤを持つ注文のIDを取得するにはどうすればよいですか?
たとえば、(S_1、S_3)または(S_3、S_1)のペアは存在しないので、O_1は選択されませんが、少なくとも2つのサプライヤがペアを持つためO_2が選択されますS_1とS_2)。
基本的に私はOrderIdによって最初のテーブルをグループ化し、各注文サプライヤリストに2番目のテーブルの少なくとも1つのペアが含まれている注文を選択する必要があります。
'order by'として使用する列はありますか? – McNets