Only the matches
An inner JOIN returns rows where the ON condition matches on both sides; unmatched rows vanish.
Hone is a place to practise programming. This is one of its lessons, written out in full and free to read without an account.
What it is for
Most reporting joins are inner: an order always has a customer.
How to think about it
Should a missing match drop the row? Use inner when a missing match should exclude the row. If missing matches must still appear, you want LEFT JOIN.
Worked example
SELECT o.id, c.city FROM orders oOne column from each side; orders aliased o.
JOIN customers c ON c.id = o.customer_id;An order with no customer row would not appear.
Your turn
Join reviews to films.
FROM reviews r films f ON f.id = r.film_id
Run a query against real tables
The trap
Duplicated rows after a join usually mean the ON matched more than one row on one side. Check the key is unique.
Practise INNER JOIN on HoneA question on it now, a coding challenge where there is one, and it is remembered for review. Free, no email needed.