• ベストアンサー

SQLの書き方

テーブルA CODE NAME ------------- 0001 山田 0002  斎藤 0003 宮下 テーブルB CODE NAME ------------- 0002  斎藤 0004 加藤 上記のテーブA,Bから下のような結果を 返すSQL分を書きたいのですが何かよい方法はないでしょうか? (重複する行は一行として返したいです。) CODE NAME ------------- 0001 山田 0002  斎藤 0003 宮下 0004 加藤

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

  • ベストアンサー
  • DrSumire
  • ベストアンサー率39% (264/666)
回答No.2

SELECT DISTINCT(CODE), NAME (SELECT * FROM A UNION SELECT * FROM B) なんてのは、どうでしょう? ※SQLはOracleの作法です

その他の回答 (3)

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.4

この場合に distinct句を使う場合、 CODEで両方のテーブル上の一意を持ってないと、 テーブルAとテーブルBで、 NAMEが異なっていた場合に、 片方のテーブルの NAMEしか取得してこないので、 注意が必要です。 余計なことを考えないように SELECT CODE, NAME FROM (SELECT CODE, NAME FROM A UNION SELECT CODE, NAME FROM B) GROUP BY CODE, NAME とやっておくほうが、 安全だと思います。

  • DrSumire
  • ベストアンサー率39% (264/666)
回答No.3

SELECT DISTINCT(CODE), NAME FROM (SELECT * FROM A UNION SELECT * FROM B) Fromを抜かしてしまった。

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.1

SELECT CODE, NAME FROM A UNION SELECT CODE, NAME FROM B で一発で取れます。