MySQL: Работа с несколькими таблицами
Объединение полей двух и более таблиц реляционной базы данных.
INNER JOIN возвращает совпадающие записи в обеих таблицах:
-- выбираем все заказы клиента с `id` = 1 SELECT a . `id` as `order_id`, a . `amount`, b . `name`, b . `email` FROM `orders` a INNER JOIN `customers` b ON a . `customer_id` = b . `id` WHERE a . `customer_id` = 1
LEFT JOIN возвращает все записи из левой таблицы и соответствующие записи из правой таблицы. LEFT JOIN и LEFT OUTER JOIN равнозначны. Слово OUTER необязательно.
-- выбираем всех клиентов и любые заказы, которые у них могут быть: SELECT b . `name`, a . `id` as `order_id` FROM `customers` b LEFT JOIN `orders` a ON b . `customer_id` = a . `customer_id` ORDER BY b . `name`;
RIGHT JOIN возвращает все записи из правой таблицы и соответствующие записи из левой таблицы. RIGHT JOIN и RIGHT OUTER JOIN равнозначны. Слово OUTER необязательно.
-- выбираем всех сотрудников из таблицы `employees` и любые заказы, которые они могли разместить SELECT a . `id` as `order_id`, b . `first_name`, b . `last_name` FROM `orders` a RIGHT JOIN `employees` b ON a . `employee_id` = b . `employee_id` ORDER BY `order_id`
Шпаргалка по JOIN запросам:
Комментарии