私は 2 つのテーブルを持っており、それらを G と T と呼んでいます。これらのテーブルでは、いくつかのフィールドの一致に基づいてレコードを選択しています。
SELECT
g.ID, t.ID
FROM
g JOIN t
ON (g.Field1 = t.Field1
AND g.Field2 = t.Field2
AND .... )
各側に一致する複数のレコードが存在する可能性があります。たとえば、行 t1 と t2 は、一致に使用されるフィールドで同一であり、g1 と g2 と同様に、互いに一致し、次のようになります。
t1 g1
t1 g2
t2 g1
t2 g2
(実際の ID は int ですが、お分かりいただけると思います)
必要なのは、各 T レコードが 1 つの G レコードのみに一致することです (それらが異なるものである限り、どちらでもかまいません)。たとえば、次のいずれかです。
t1 g1
t2 g2
また
t1 g2
t2 g1
許容されますが、そうではありません
t1 g1
t2 g1
両方の結果セットではなく、合計 2 行のみが必要です (この例では)。
各テーブルからの最初の選択には (たとえば) 30,000 行ある場合があります。すべてが一致するわけではありませんが、これで問題ありません。
これはセットごとに行うことができますか、それともカーソルを使用する必要がありますか?
回答に応じて編集されました。