Оператор JOIN (или INNER JOIN) возвращает строки, где есть совпадения в обеих таблицах. Оператор LEFT JOIN (или LEFT OUTER JOIN) возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если в правой таблице нет совпадений, возвращается NULL.
sql
Пример:
Допустим, у нас есть две таблицы: Пользователи и Заказы.
Таблица Пользователи:
| id | имя |
|---|---|
| 1 | Иван |
| 2 | Петр |
| 3 | Анна |
Таблица Заказы:
| id | user_id | товар |
|---|---|---|
| 10 | 1 | Книга |
| 11 | 1 | Фильм |
| 12 | 2 | Музыка |
INNER JOIN таблиц Пользователи и Заказы по user_id вернет:| id (польз) | имя | id (заказ) | user_id | товар |
|---|---|---|---|---|
| 1 | Иван | 10 | 1 | Книга |
| 1 | Иван | 11 | 1 | Фильм |
| 2 | Петр | 12 | 2 | Музыка |
LEFT JOIN таблиц Пользователи (слева) и Заказы (справа) по user_id вернет:| id (польз) | имя | id (заказ) | user_id | товар |
|---|---|---|---|---|
| 1 | Иван | 10 | 1 | Книга |
| 1 | Иван | 11 | 1 | Фильм |
| 2 | Петр | 12 | 2 | Музыка |
| 3 | Анна | NULL | NULL | NULL |