###実現したいこと
カラムが異なるテーブルを縦にUNION
するとき、一方にないカラムに自動でnull
を入れる方法はございませんか?
###該当のソースコード
以下のように片方にはname
があり、もう片方にはaddress
があるようなケースです。
SQL
1CREATE TABLE table_one 2 (`id` int, `name` text, `notes` text) 3; 4INSERT INTO table_one 5 (`id`, `name`, `notes`) 6VALUES 7 (1, 'mina', 'val_1'), 8 (2, 'mari', 'val_2'), 9 (3, 'mako', 'val_3') 10; 11 12CREATE TABLE table_two 13 (`id` int, `address` text, `notes` text) 14; 15INSERT INTO table_two 16 (`id`, `address`, `notes`) 17VALUES 18 (1, '東京', 'val_3'), 19 (2, '神奈川', 'val_2'), 20 (3, '千葉', 'val_1') 21;
はじめてUNION
を使うのでよくわかっていないかもしれませんが、自分でつなげると次のように1つずつnull
を指定する方法までしかたどり着けませんでした。
SQL
1SELECT id 2 ,name 3 ,'null' as address 4 ,notes 5FROM table_one 6UNION 7SELECT id 8 ,'null' as name 9 ,address 10 ,notes 11FROM table_two 12ORDER BY notes; 13
しかし実際には多くのカラムが異なるテーブル同士のUNION
を想定しています。
上記ではSELECT
は4個ですが実際には20個くらいになりそうなので、このnull
を自動で入れる方法があればと思い質問させて頂きました。
良い方法がございましたら宜しくお願い致します。
###補足情報(FW/ツールのバージョンなど)
phpMyAdmin(4.8.5)で、MySQL(10.0.33-MariaDB)を使っています。
回答5件
あなたの回答
tips
プレビュー