私はSQLを初めて使用します。Oracle10gを使用しています。私は以下のクエリを持っています。それは3つの部分で構成され、3つの部分すべてのUNIONを実行しています。ただし、すべてのクエリで、結合テーブルを除くほとんどのロジックが一般的です。UNIONを回避し、すべてを1つのブロックに配置することは可能ですか?
SELECT DISTINCT e.some_id
FROM
main_table e,
main_table_join_one x //only change
where e.some_id = x.some_id(+)
and (x.status in('A','I') or x.status is null)
and e.code='XYZ' and e.second_code in('XYZ','ABC')
UNION
SELECT DISTINCT ef.some_id
FROM
main_table ef,
main_table_join_two xf //only change
where ef.some_id = xf.some_id(+)
and (xf.status in('A','I') or xf.status is null)
and ef.code='XYZ' and ef.second_code in('XYZ','ABC')
UNION
SELECT DISTINCT eff.some_id
FROM
main_table eff,
main_table_join_three xff //only change
where eff.some_id = xff.some_id(+)
and (xff.status in('A','I') or xff.status is null)
and eff.code='XYZ' and eff.second_code in('XYZ','ABC')
ありがとう!