Example 1
Show all job categories even if no employee holds that role
Manager and Designer have no employees, so e.name is NULL for those rows. This query is equivalent to SELECT e.name, jc.title FROM job_categories jc LEFT JOIN employees e ON jc.id = e.category_id ORDER BY jc.id, e.name — the same result written as a LEFT JOIN by swapping the table order.
CREATE TABLE job_categories (id INT, title VARCHAR(50));
CREATE TABLE employees (id INT, name VARCHAR(50), category_id INT);
INSERT INTO
job_categories (id, title)
VALUES
(1, 'Engineer'),
(2, 'Manager'),
(3, 'Designer');
INSERT INTO
employees (id, name, category_id)
VALUES
(1, 'Ada', 1),
(2, 'Grace', 1);SELECT
e.name,
jc.title
FROM
employees e
RIGHT JOIN job_categories jc ON e.category_id = jc.id
ORDER BY
jc.id,
e.name;| name | title |
|---|---|
| Ada | Engineer |
| Grace | Engineer |
| NULL | Manager |
| NULL | Designer |
Output is identical across all engines.