Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【MySQL】二つのテーブルを一つに結合(右外部結合)する

右外部結合(右側のすべての行を必ず出力する結合)するには、right join句を使う。以下はあらかじめ用意した二つのテーブル(charaとseiyu)を右外部結合した例。右側(seiyu)の4行目は左側(chara)に結合相手が見つからないため、列にNULLを挿入して6行目に出力されていることがわかる。

mysql> select * from chara;
+------------------+-------------------+------+------------+
| name             | title             | no   | vc         |
+------------------+-------------------+------+------------+
| ライスシャワー   | ウマ娘            |   30 | miwami01   |
| スーパークリーク | ウマ娘            |   45 | kyuki01    |
| メイショウドトウ | ウマ娘            |   58 | mwatada01  |
| ライザ           | ライザのアトリエ2 |    1 | ynoguchi01 |
| フィー           | ライザのアトリエ2 |    2 | mwatada01  |
| 黒川あかね       | 推しの子          |    6 | miwami01   |
+------------------+-------------------+------+------------+
6 rows in set (0.00 sec)
mysql> select * from seiyu;
+-----------+------------+
| id        | name       |
+-----------+------------+
| miwami01  | 岩見舞菜香 |
| kyuki01   | 優木かな   |
| mwatada01 | 和多田美咲 |
| machico01 | Machico    |
+-----------+------------+
4 rows in set (0.00 sec)
mysql> select chara.name, chara.title, seiyu.name
    -> from chara right join seiyu
    -> on chara.vc = seiyu.id;
+------------------+-------------------+------------+
| name             | title             | name       |
+------------------+-------------------+------------+
| 黒川あかね       | 推しの子          | 岩見舞菜香 |
| ライスシャワー   | ウマ娘            | 岩見舞菜香 |
| スーパークリーク | ウマ娘            | 優木かな   |
| フィー           | ライザのアトリエ2 | 和多田美咲 |
| メイショウドトウ | ウマ娘            | 和多田美咲 |
| NULL             | NULL              | Machico    |
+------------------+-------------------+------------+
6 rows in set (0.00 sec)