2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
В MySQLLEFT JOIN
Используется для возврата всех записей из левой таблицы (то есть таблицы слева от ключевого слова LEFT JOIN), даже если в правой таблице нет соответствующих записей. Для тех записей, которые не совпадают в правой таблице, правая часть таблицы результатов будет заполнена NULL.оON
иWHERE
Употребление предложений, они находятся вLEFT JOIN
Роли здесь разные:
ON
позже.если вON
Позже появятся дополнительные условные ограничения на правую таблицу, которые также будут применяться при подключении, но не повлияют на принцип возврата всех записей из левой таблицы.JOIN
Набор результатов, сгенерированный операцией, дополнительно фильтруется.Когда ставится условиеWHERE
те записи, которые не соответствуют условиям (будь то из левой таблицы или из правой таблицы), будут удалены, что может повлиять на первоначальное намерение вернуть все записи из левой таблицы, особенно при обработке значений NULL, вам необходимо быть особо осторожный.Конкретный случай первый:
Предположим, у нас есть две таблицы, одна из нихemployees
(таблица сотрудников), другойdepartments
(таблица отделов), мы хотим узнать всех сотрудников и названия их отделов, даже если некоторые сотрудники не закреплены за конкретным отделом.
таблица сотрудников:
идентификатор | имя |
---|---|
1 | Элис |
2 | Боб |
3 | Кэрол |
Таблица отделов:
идентификатор | имя |
---|---|
1 | HR |
2 | ЭТО |
3 | Маркетинг |
в,employees
столdepartment_id
Поле может иметь значение NULL, что указывает на отсутствие назначенного отдела.
Пример использования ВКЛ:
SELECT employees.name, departments.name AS department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;