1

私は 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 行ある場合があります。すべてが一致するわけではありませんが、これで問題ありません。

これはセットごとに行うことができますか、それともカーソルを使用する必要がありますか?

回答に応じて編集されました。

4

1 に答える 1