[できるPRO MySQL できるPROシリーズ Kindle版] まとめ

Logo

できるPRO MySQL できるPROシリーズ Kindle版の内容をまとめる。

View the Project on GitHub nekonisi/MySQL

04_外部結合

概要

外部結合

概要

LEFT JOINRIGHT JOINに関して

結合方法 名称 意味
LEFT JOIN 左外部結合 FROMの後に書かれたテーブルをすべて抽出
左側にあるテーブルをすべて抽出
RIGHT JOIN 右外部結合 JOJNの後に書かれたテーブルをすべて抽出
右側にあるテーブルをすべて抽出

文法

左外部結合

LEFT JOIN 結合するテーブル名 ON 条件

右外部結合

RIGHT JOIN 結合するテーブル名 ON 条件

サンプル

事前準備

使用するデータベースを変更
USE dekirusample2;
MariaDB [sakila]> USE dekirusample2;
Database changed
データの確認
SELECT * FROM users;
SELECT * FROM meals;
MariaDB [dekirusample2]> SELECT * FROM users;SELECT * FROM meals;
+----+----------+
| id | name     |
+----+----------+
|  1 | 太宰治   |
|  2 | 大庭葉蔵 |
|  3 | 上司幾太 |
+----+----------+
3 rows in set (0.00 sec)

+---------+---------+
| user_id | meat    |
+---------+---------+
|       0 | beef    |
|       1 | chicken |
+---------+---------+
2 rows in set (0.00 sec)

内部結合

SELECT * FROM 
users INNER JOIN meals 
ON users.id = meals.user_id;
MariaDB [dekirusample2]> SELECT * FROM users INNER JOIN meals ON users.id = meals.user_id;
+----+--------+---------+---------+
| id | name   | user_id | meat    |
+----+--------+---------+---------+
|  1 | 太宰治 |       1 | chicken |
+----+--------+---------+---------+
1 row in set (0.00 sec)

左外部結合

SELECT * FROM 
users LEFT JOIN meals 
ON users.id = meals.user_id;
MariaDB [dekirusample2]> SELECT * FROM users LEFT JOIN meals ON users.id = meals.user_id;
+----+----------+---------+---------+
| id | name     | user_id | meat    |
+----+----------+---------+---------+
|  1 | 太宰治   |       1 | chicken |
|  2 | 大庭葉蔵 |    NULL | NULL    |
|  3 | 上司幾太 |    NULL | NULL    |
+----+----------+---------+---------+
3 rows in set (0.00 sec)

右外部結合

SELECT * FROM 
users RIGHt JOIN meals 
ON users.id = meals.user_id;
MariaDB [dekirusample2]> SELECT * FROM users RIGHt JOIN meals ON users.id = meals.user_id;
+------+--------+---------+---------+
| id   | name   | user_id | meat    |
+------+--------+---------+---------+
| NULL | NULL   |       0 | beef    |
|    1 | 太宰治 |       1 | chicken |
+------+--------+---------+---------+
2 rows in set (0.00 sec)