Ответ
Оператор JOIN используется для объединения строк из двух или более таблиц на основе связанного столбца. Основные типы:
- INNER JOIN: Возвращает только строки, где есть совпадение в обеих таблицах.
SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.id; - LEFT (OUTER) JOIN: Возвращает все строки из левой таблицы и совпадающие строки из правой. При отсутствии совпадения для правой таблицы возвращаются
NULL.SELECT * FROM customers LEFT JOIN orders ON customers.id = orders.customer_id; - RIGHT (OUTER) JOIN: Возвращает все строки из правой таблицы и совпадающие строки из левой. Аналог
LEFT JOIN, но с приоритетом правой таблицы. - FULL (OUTER) JOIN: Возвращает все строки, когда есть совпадение в левой или правой таблице. Результат объединяет
LEFTиRIGHT JOIN, заполняя недостающие стороныNULL. - CROSS JOIN: Возвращает декартово произведение — все возможные комбинации строк из обеих таблиц. Используется редко, так как может генерировать огромный результат.
- SELF JOIN: Обычный
JOIN, но таблица соединяется сама с собой. Требует использования алиасов.SELECT e1.name AS employee, e2.name AS manager FROM employees e1 LEFT JOIN employees e2 ON e1.manager_id = e2.id;