したがって、共有キー (id) が必ずしも存在しない異なる列で構成される 2 つ以上のテーブルがあるとします。
Alpha:
+----+-------+-------+-------+
| id | paula | randy | simon |
+----+-------+-------+-------+
| 1 | 8 | 7 | 2 |
| 2 | 9 | 6 | 2 |
| 3 | 10 | 5 | 2 |
+----+-------+-------+-------+
Beta:
+----+---------+-----+------------+------+
| id | is_nice | sex | dob | gift |
+----+---------+-----+------------+------+
| 2 | 1 | F | 1990-05-25 | iPod |
| 3 | 0 | M | 1990-05-25 | coal |
+----+---------+-----+------------+------+
Gamma:
+----+---------+--------+
| id | is_tall | is_fat |
+----+---------+--------+
| 1 | 1 | 1 |
| 99 | 0 | 1 |
+----+---------+--------+
望ましい効果は、データが利用できない場合に NULL を挿入する ID でテーブルを一緒にマッシュアップすることです。
+----+-------+-------+-------+---------+-----+------------+------+---------+--------+
| id | paula | randy | simon | is_nice | sex | dob | gift | is_tall | is_fat |
+----+-------+-------+-------+---------+-----+------------+------+---------+--------+
| 1 | 8 | 7 | 2 | | | | | 1 | 1 |
| 2 | 9 | 6 | 2 | 1 | F | 1990-05-25 | iPod | | |
| 3 | 10 | 5 | 2 | 0 | M | 1990-05-25 | coal | 1 | 1 |
| 99 | | | | | | | | 0 | 0 |
+----+-------+-------+-------+---------+-----+------------+------+---------+--------+
NULL 'dummy' 列と UNION ( MySql SELECT union for different columns? ) を使用できますが、テーブルの数が多い場合、それは王室の苦痛のように思えます。これを達成するために使用できる JOIN メソッドがあると思いたいのですが、これを理解するには助けが必要です。
これは機能します:
SELECT `id`, `paula`, `randy`, ..., NULL AS `is_nice`, ... FROM `Alpha`
UNION SELECT `id`, NULL AS `paula`, ..., FROM `Beta`
UNION SELECT `id`, NULL AS `paula`, ..., `is_fat` FROM `Gamma` ;
しかし、それは確かに間違った方法のように感じます。whatever
追加のテーブルを追加したいときはいつでも、どこにでもNULL AS を挿入する SQL の行や行を編集することなく、どうすれば同じ結果を得ることができますか?
前もって感謝します!