Introduction
LEFT JOIN and RIGHT JOIN help you combine rows from two tables based on a related column, even if some rows don't have matching data in the other table.
SELECT columns FROM table1 LEFT JOIN table2 ON table1.common_column = table2.common_column; SELECT columns FROM table1 RIGHT JOIN table2 ON table1.common_column = table2.common_column;
SELECT customers.name, orders.id FROM customers LEFT JOIN orders ON customers.id = orders.customer_id;
SELECT employees.name, departments.name FROM employees RIGHT JOIN departments ON employees.department_id = departments.id;
CREATE TABLE customers (id INT, name TEXT); CREATE TABLE orders (id INT, customer_id INT); INSERT INTO customers VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie'); INSERT INTO orders VALUES (101, 1), (102, 1), (103, 3); -- LEFT JOIN example SELECT customers.name AS customer, orders.id AS order_id FROM customers LEFT JOIN orders ON customers.id = orders.customer_id ORDER BY customers.id, orders.id; -- RIGHT JOIN example SELECT customers.name AS customer, orders.id AS order_id FROM customers RIGHT JOIN orders ON customers.id = orders.customer_id ORDER BY orders.id;
LEFT JOIN do in PostgreSQL?employeesdepartmentsSELECT employees.name, departments.dept_name FROM employees LEFT JOIN departments ON employees.id = departments.id ORDER BY employees.id;
SELECT * FROM employees RIGHT JOIN departments employees.id = departments.id;
Pass the test and this pattern moves unknown