このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
02_freebsd:04_database:01_mysql:left_join_inner_join違い [2014/04/28 06:18] – matsui | 02_freebsd:04_database:01_mysql:left_join_inner_join違い [2014/04/28 06:25] (現在) – matsui | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== LEFT JOIN、INNER JOIN違い ====== | ||
+ | |||
+ | |||
+ | ===== 下記2つのテーブルでテスト ===== | ||
+ | |||
+ | <code console> | ||
+ | mysql> SELECT * FROM table1; | ||
+ | +------+------+ | ||
+ | | id | name | | ||
+ | +------+------+ | ||
+ | | 1 | A | | ||
+ | | 2 | B | | ||
+ | | 3 | C | | ||
+ | | 4 | D | | ||
+ | | 5 | E | | ||
+ | | 6 | F | | ||
+ | +------+------+ | ||
+ | 6 rows in set (0.00 sec) | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code console> | ||
+ | mysql> SELECT * FROM table2; | ||
+ | +------+------+ | ||
+ | | id | name | | ||
+ | +------+------+ | ||
+ | | 1 | A | | ||
+ | | 2 | B | | ||
+ | | 3 | C | | ||
+ | | 7 | G | | ||
+ | | 8 | H | | ||
+ | | 9 | * | | ||
+ | +------+------+ | ||
+ | 6 rows in set (0.00 sec) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== LEFT JOIN ===== | ||
+ | |||
+ | <code console> | ||
+ | mysql> select * from table1 LEFT JOIN table2 ON table1.id=table2.id; | ||
+ | +------+------+------+------+ | ||
+ | | id | name | id | name | | ||
+ | +------+------+------+------+ | ||
+ | | 1 | A | 1 | A | | ||
+ | | 2 | B | 2 | B | | ||
+ | | 3 | C | 3 | C | | ||
+ | | 4 | D | NULL | NULL | | ||
+ | | 5 | E | NULL | NULL | | ||
+ | | 6 | F | NULL | NULL | | ||
+ | +------+------+------+------+ | ||
+ | 6 rows in set (0.00 sec) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== INNER JOIN ===== | ||
+ | |||
+ | <code console> | ||
+ | mysql> SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id; | ||
+ | +------+------+------+------+ | ||
+ | | id | name | id | name | | ||
+ | +------+------+------+------+ | ||
+ | | 1 | A | 1 | A | | ||
+ | | 2 | B | 2 | B | | ||
+ | | 3 | C | 3 | C | | ||
+ | +------+------+------+------+ | ||
+ | 3 rows in set (0.00 sec) | ||
+ | </ |