このクエリは、次のような結合構文で書き直すことができます:
SELECT DISTINCT t.table_id
FROM TABLE_ONE t
JOIN COMMON_TABLE cmn
ON t.table_id = cmn.common_id
WHERE t.table_name IN( 'TEST_ONE', 'TEST_TWO', 'TEST_THREE' )
AND cmn.column_one > 20
AND cmn.column_two <= 30
DISTINCT
重複するレコードを削除します。
編集:
次のように子テーブルを含めることができます:
SELECT DISTINCT t.table_id
FROM TABLE_ONE t
JOIN COMMON_TABLE cmn
ON t.table_id = cmn.common_id
JOIN TABLE_CHILD_ONE tc
ON t.table_id = tc.table_id
WHERE ( tc.table_name IN( 'TEST_CHILD_ONE', 'TEST_CHILD_TWO', 'TEST_CHILD_THREE' )
OR t.table_name IN( 'TEST_ONE', 'TEST_TWO', 'TEST_THREE' ) )
AND cmn.column_one > 20
AND cmn.column_two <= 30