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 запросам:

Объединение полей двух и более таблиц реляционной базы данных
MySQL up: просмотров: 1.3k