• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のテーブルからデータを取得したい)

複数のテーブルからデータを取得する方法

このQ&Aのポイント
  • 複数のテーブルからデータを取得する際に重複を取り除きたい場合、select distinct文を使用します。
  • 両方のテーブルのカラム名が同じ場合、select distinct文を使ってテーブルを結合することができます。
  • ただし、データの量が多い場合、クエリの実行に時間がかかる可能性があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>【select distinct カラム名 from テーブル1 union select distinct カラム名 from テーブル2;】 >としても重複を取り除いた後にテーブルを結合してるので結果的に両テーブルの重複した値を取り除くことができず。 いや、できますね むしろunionするならdistinctもいらないです。 //データ作成 create table t1(data int); create table t2(data int); insert into t1 values(1),(2),(2),(3),(3),(4); insert into t2 values(1),(3),(3),(5); //表示 select data from t1 union select data from t2; //重複も表示するならunion all select data from t1 union all select data from t2;

poniponi69
質問者

お礼

何か勘違いしていたようで、教えていただいた通りunionでやってみるとうまくいきました。 ありがとうございます!

その他の回答 (1)

  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

実際に試してはいませんが、 select distinct * from ( select カラム名 from テーブル1 union select カラム名 from テーブル2 ) というのはどうでしょう? ちなみに、  select distinct T1.カラム名, T2.カラム名 from テーブル1 T1, テーブル2 T2 これをやらかすと、テーブル結合により2万件×2万件=4億件の中からの検索になりますので、 クエリ実行中のまま反応がなくなって当たり前です。

poniponi69
質問者

お礼

この文では思うように動きませんでした。 >テーブル結合により2万件×2万件=4億件の中からの検索になりますので、 4億件(^_^;) なるほどこんな事が起こっていたのですね 非常に勉強になりました。

関連するQ&A