• 締切済み

SQL 複数のテーブルから重複なしでデータを取得

同じフィールド名[名前]を持つテーブルが複数個あります。 仮にテーブル名を、A、B、C、Dの4個だとします。 それらのテーブルから、フィールド名[名前]のデータを重複なしで取得したいのですが、SQL文が思いつきません。 取得するフィールドは[名前]だけです。 select distinct(名前) from A union select distinct(名前) from B union select distinct(名前) from C union select distinct(名前) from D だと、各表に同じ名前が存在する場合は結果も重複してしまい、期待する結果が得られませんでした。 環境はOracle 9iです。 SQL文を教えてください。よろしくお願いします。

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

select 名前 from A union select 名前 from B union select 名前 from C union select 名前 from D で重複が削除されないなら8iのバグです。 11g R2ではユニークな値が抽出されます。

すると、全ての回答が全文表示されます。
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

select distinct(名前) from ( select 名前 from A union select 名前 from B union select 名前 from C union select 名前 from D ); ――かな。

すると、全ての回答が全文表示されます。

専門家に質問してみよう