DROP DATABASE IF EXISTS versuch; CREATE DATABASE versuch; USE versuch; CREATE TABLE artikel ( artikel_id INT UNSIGNED AUTO_INCREMENT, bezeichnung VARCHAR(255) NOT NULL DEFAULT '', PRIMARY KEY(artikel_id) ) ENGINE=InnoDB; INSERT INTO artikel (artikel_id, bezeichnung) VALUES (3001, 'Papier (100)'), (3005, 'Tinte (gold)'), (3006, 'Tinte (rot)') ; CREATE TABLE bestellung_position ( bestellung_id INT UNSIGNED, position_nr INT UNSIGNED, artikel_id INT UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY(bestellung_id, position_nr), FOREIGN KEY(artikel_id) REFERENCES artikel(artikel_id) ON UPDATE RESTRICT ON DELETE RESTRICT ) ENGINE=InnoDB; SET FOREIGN_KEY_CHECKS=0; INSERT INTO bestellung_position (bestellung_id, position_nr, artikel_id) VALUES (1, 1, 3001), (1, 2, 3006), (2, 1, 9999) ; -- LEFT and LEFT OUTER JOIN as expected SELECT * FROM bestellung_position LEFT JOIN artikel USING(artikel_id); SELECT * FROM bestellung_position LEFT OUTER JOIN artikel USING(artikel_id); +------------+---------------+-------------+--------------+ | artikel_id | bestellung_id | position_nr | bezeichnung | +------------+---------------+-------------+--------------+ | 3001 | 1 | 1 | Papier (100) | | 3006 | 1 | 2 | Tinte (rot) | | 9999 | 2 | 1 | NULL | +------------+---------------+-------------+--------------+ 3 rows in set (0.000 sec) -- RIGHT and RIGHT OUTER JOIN as expected SELECT * FROM bestellung_position RIGHT JOIN artikel USING(artikel_id); SELECT * FROM bestellung_position RIGHT OUTER JOIN artikel USING(artikel_id); +------------+--------------+---------------+-------------+ | artikel_id | bezeichnung | bestellung_id | position_nr | +------------+--------------+---------------+-------------+ | 3001 | Papier (100) | 1 | 1 | | 3005 | Tinte (gold) | NULL | NULL | | 3006 | Tinte (rot) | 1 | 2 | +------------+--------------+---------------+-------------+ 3 rows in set (0.000 sec) -- FULL JOIN unexpected like INNER JOIN SELECT * FROM bestellung_position FULL JOIN artikel USING(artikel_id); +------------+---------------+-------------+--------------+ | artikel_id | bestellung_id | position_nr | bezeichnung | +------------+---------------+-------------+--------------+ | 3001 | 1 | 1 | Papier (100) | | 3006 | 1 | 2 | Tinte (rot) | +------------+---------------+-------------+--------------+ 2 rows in set (0.000 sec) -- FULL OUTER JOIN expected error message SELECT * FROM bestellung_position FULL OUTER JOIN artikel USING(artikel_id); You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OUTER JOIN artikel USING(artikel_id)' at line 2