これは私の既存のSQLクエリの構造です:
SELECT * FROM (
SELECT *, 'A' AS Status FROM Table1
WHERE Field1 NOT IN
(
SELECT Field1 FROM Table2 WHERE Field 1 = 'val' AND ...
)
UNION
SELECT *, 'B' AS Status FROM Table1
WHERE Field1 IN
(
SELECT Field1 FROM Table2 WHERE Field 1 = 'val' AND ...
)
) AS Result
ここでは、テーブルから 2 セットのデータを選択し、列に2 つの異なる値(A と B) を割り当てStatus
、両方のユニオンを結果として 1 つに設定しています。
この方法の問題点は、内部選択クエリを複製する必要があることですSELECT Field1 FROM Table2 WHERE Field 1 = 'val' AND ...
(私の元の SQL クエリは上記よりも少し複雑です)
これを単一の Select クエリとして書き直すにはどうすればよいですか? それは可能ですか?