mysql> select * from a; +------+------+ | a_id | name | +------+------+ | 1 | foo | | 2 | bar | | 4 | baz | +------+------+ 3 rows in set (0.00 sec) mysql> select * from b; +------+--------------------+ | b_id | descr | +------+--------------------+ | 2 | descr for bar | | 3 | descr for whatever | | 4 | descr for baz | +------+--------------------+ 3 rows in set (0.01 sec) mysql> select * from a INNER JOIN b on a.a_id=b.b_id; +------+------+------+---------------+ | a_id | name | b_id | descr | +------+------+------+---------------+ | 2 | bar | 2 | descr for bar | | 4 | baz | 4 | descr for baz | +------+------+------+---------------+ 2 rows in set (0.01 sec) mysql> select * from a LEFT JOIN b on a.a_id=b.b_id; +------+------+------+---------------+ | a_id | name | b_id | descr | +------+------+------+---------------+ | 1 | foo | NULL | NULL | | 2 | bar | 2 | descr for bar | | 4 | baz | 4 | descr for baz | +------+------+------+---------------+ 3 rows in set (0.00 sec) mysql> select * from a RIGHT JOIN b on a.a_id=b.b_id; +------+------+------+--------------------+ | a_id | name | b_id | descr | +------+------+------+--------------------+ | 2 | bar | 2 | descr for bar | | NULL | NULL | 3 | descr for whatever | | 4 | baz | 4 | descr for baz | +------+------+------+--------------------+ 3 rows in set (0.01 sec)