私はしばらくこの問題に取り組んできましたが、どうすればよいかわかりません。
複数の結合を含む巨大な SQL クエリがあり、何十万ものレコードが得られます。これは完璧です。
次に、最初のテーブルに追加する必要がある別のテーブルに 200 個の奇数のレコードがあることに気付きました。
最初のテーブル:
フィールド1 フィールド2 フィールド3 ジョン・スミス 23 ボストン モハメド・アリ 45 ニューヨーク ステファニー・ジョンソン 15 ロサンゼルス
新しいテーブル
フィールド1 その他フィールド1 その他フィールド2 マーク・クーリー Null null
したがって、実際には、テーブル 2 の Field1 の値を最初のテーブルの「下」に追加するだけで済みます。最初のクエリで行ったすべての結合は、テーブル 2 にある値に対しても機能するはずです。
追加する列しかないため、ユニオンは機能しません。2 番目のテーブルの値から「Field2」と「Field3」を取得するには、最初のテーブルから同じクエリをコピーして貼り付ける必要があります。
私がそれをどのように見せたいかは次のとおりです。
フィールド1 フィールド2 フィールド3 ジョン・スミス 23 ボストン モハメド・アリ 45 ニューヨーク ステファニー・ジョンソン 15 ロサンゼルス マーク・クーリー 65 ヒューストン
どうすればこれを行うことができますか?テーブルを「結合」したくありません。それらを結合したいのですが、1つの列だけで。
これが私が意味することの例です:
テーブル 1 は、次のようにして作成されました。
SELECT table.value1 as Field1, table2.value2 as Field2, table3.value3 as Field3
FROM some_table as table
LEFT OUTER JOIN some_other_table as Table2 ON table.field = table2.field5
LEFT OUTER JOIN a_third_table as table3 ON table2.field2 = table3.field4
しかし今、より多くの Field1 値を持つ newTable があり、それらの値を最初のテーブルに追加する必要があります。
私はこれを試しました:
SELECT COALESCE(table.value1, NewTable.value) as Field1, table2.value2 as Field2,
table3.value3 as Field3
FROM some_table as table
LEFT OUTER JOIN some_other_table as Table2 ON table.field = table2.field5
LEFT OUTER JOIN a_third_table as table3 ON table2.field2 = table3.field4, newTable
しかし、これは私に指数関数的な量の結果を与えています.それは私にさらに数百を与えるべきです.