できるPRO MySQL できるPROシリーズ Kindle版の内容をまとめる。
LEFT JOIN
, RIGHT JOIN
が存在する。LEFT JOIN
とRIGHT 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;
users
テーブル)の内容はすべて表示される。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;
meals
テーブル)の内容はすべて表示される。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)