下記のようなテーブルが存在するとします。
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 |