Introduction
A FULL OUTER JOIN helps you combine all rows from two tables, showing matches and also rows without matches from both sides. But not all databases support it the same way.
SELECT columns FROM table1 FULL OUTER JOIN table2 ON table1.key = table2.key;
SELECT * FROM employees FULL OUTER JOIN departments ON employees.dept_id = departments.id;
SELECT * FROM tableA FULL OUTER JOIN tableB ON tableA.id = tableB.id;
CREATE TABLE A (id INT, name VARCHAR(10)); CREATE TABLE B (id INT, color VARCHAR(10)); INSERT INTO A VALUES (1, 'Alice'), (2, 'Bob'); INSERT INTO B VALUES (2, 'Red'), (3, 'Blue'); SELECT A.id, A.name, B.id, B.color FROM A FULL OUTER JOIN B ON A.id = B.id ORDER BY COALESCE(A.id, B.id);
FULL OUTER JOIN clause?FULL OUTER JOIN with an ON clause to specify join condition.INNER FULL JOIN, SELECT * FROM table1 FULL JOIN table2 WHERE table1.id = table2.id; misplaces join condition in WHERE, SELECT * FROM table1 OUTER JOIN table2 ON table1.id = table2.id; uses incomplete OUTER JOIN without FULL.Table A: id, nameTable B: id, citySELECT A.id, A.name, B.city FROM A FULL OUTER JOIN B ON A.id = B.id ORDER BY A.id, B.id;
SELECT * FROM employees FULL OUTER JOIN departments ON employees.dept_id = departments.id;
Pass the test and this pattern moves unknown