0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[SQL] UNION結合したレコードの取得元テーブルを知りたい!

Last updated at Posted at 2020-03-06

下記のようなテーブルが存在するとします。

syouyu_ramen_shop テーブル

id name comment
1 店A うまかった!
2 店B あんま美味しくない!
3 店C おいし〜

miso_ramen_shop テーブル

id name comment
1 店X やっぱ味噌に限るな
2 店Y あと100円やすければ・・
3 店Z 二郎っぽかった

よし、じゃあ UNION でテーブル結合しよう!

通常パターン

実行SQL

SELECT srs.id, srs.name, srs.comment FROM syouyu_ramen_shop as srs UNION SELECT mrs.id, mrs.name, mrs.comment FROM miso_ramen_shop as mrs;

結果レコード

id name comment
1 店A うまかった!
2 店B あんま美味しくない!
3 店C おいし〜
1 店X やっぱ味噌に限るな
2 店Y あと100円やすければ・・
3 店Z 二郎っぽかった

あれ・・・これじゃどこの店が醤油か味噌かわかんなくない?

そういうときは、SELECT句のあとに 文字列 as table_name を入れてあげることで
結果に table_name のカラムが追加されて出力されます。

取得元テーブルが分かるパターン

実行SQL

SELECT srs.id, srs.name, srs.comment 'syouyu' as table_name FROM syouyu_ramen_shop as srs UNION SELECT mrs.id, mrs.name, mrs.comment 'miso' as table_name FROM miso_ramen_shop as mrs;

結果レコード

id name comment table_name
1 店A うまかった! syouyu
2 店B あんま美味しくない! syouyu
3 店C おいし〜 syouyu
1 店X やっぱ味噌に限るな miso
2 店Y あと100円やすければ・・ miso
3 店Z 二郎っぽかった miso
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?