Loading lessons...
LEFT and RIGHT JOIN
LEFT JOIN returns all rows from the left table, plus matching rows from the right. Where there is no match, the right columns are NULL.
sql
### SELECT Customers.CustomerName, Orders.OrderID
### FROM Customers
### LEFT JOIN Orders
### ON Customers.CustomerID = Orders.CustomerID;
| CustomerName | OrderID |
|---|---|
| Alfreds Futterkiste | 10248 |
| Antonio Moreno | 10249 |
| Around the Horn | NULL |
"Around the Horn" has no order, so OrderID is NULL - but the customer still appears.
RIGHT JOIN
RIGHT JOIN is the mirror: all rows from the right table, plus matching left rows.
sql
### SELECT Customers.CustomerName, Orders.OrderID
### FROM Orders
### RIGHT JOIN Customers
### ON Orders.CustomerID = Customers.CustomerID;
Which side is which?
- The table written first (after FROM) is the left table.
- The table after JOIN is the right table.
- LEFT JOIN keeps all of the left; RIGHT JOIN keeps all of the right.
TL;DR
- LEFT JOIN keeps every left row; missing right values become NULL.
- RIGHT JOIN keeps every right row; missing left values become NULL.
- The order of the tables decides left and right.