mySQL - Синтаксис JOIN на примерах

Рассмотрим принцип работы JOIN в mySQL на примерах. Создадим 2 таблицы. 1 таблица будет называться department с полями DepartmentID, DepartmentName. Она будет содержать название отдела и его ID. 2 таблица будет называться workers с полями DepartmentID, Na

mySQL - Синтаксис JOIN на примерах

» » Сообщение:

Рассмотрим принцип работы JOIN в mySQL на примерах

Создадим 2 таблицы.
1 таблица будет называться department с полями DepartmentID, DepartmentName. Она будет содержать название отдела и его ID.

department
department

2 таблица будет называться workers с полями DepartmentID, Name. Она будет содержать имена работников а также ID отдела, в котором он работает.

workers
workers

INNER JOIN

Код: Выделить всё Развернуть
SELECT *
FROM `workers` INNER JOIN `department`
ON `workers`.DepartmentID = `department`.DepartmentID

Результатом объединения таблиц с помощью INNER JOIN являются записи, общие для левой и правой таблиц.

Т.е., если смотреть по нашему примеру, то мы получим всех пользователей, которые работают в существующих отделах.

inner_join.png
inner_join.png

LEFT OUTER JOIN

Код: Выделить всё Развернуть
SELECT *
FROM `workers` LEFT OUTER JOIN `department`
ON `workers`.DepartmentID = `department`.DepartmentID

Выведит всех пользователей и присоединит к ним отделы, если данный пользователь не состоит ни в одном отделе, то отдел присвоится как null.

left_join.png
left_join.png

Следующий запрос выведит нам пользователей, которые не состоят ни в одном отделе

Код: Выделить всё Развернуть
SELECT *
FROM `workers`
LEFT OUTER JOIN `department` ON `workers`.DepartmentID = `department`.DepartmentID
WHERE department.DepartmentID IS null
left_join_null.png
left_join_null.png

RIGHT OUTER JOIN

Код: Выделить всё Развернуть
SELECT *
FROM `workers` RIGHT OUTER JOIN `department`
ON `workers`.DepartmentID = `department`.DepartmentID

Этот запрос нам выдаст все отделы и соответствующих работников, которые работают в этих отделах.

right_join.png
right_join.png

© wizardjava.com

inner join, left outer join, right outer join



Похожие темыКомментарии ПросмотрыПоследнее сообщение
0951MySQL Проблема с кодировкой. Вместо...
Сообщение от: Admin
0329Как составить запрос случайной выбо...
Сообщение от: Admin
1286Re: Как добавить/удалить индекс к п...
Сообщение от: Admin
0601Кузнецов М.В., Симдянов И.В. MySQL ...
Сообщение от: Admin
0312Удаление дубликатов строк из таблиц...
Сообщение от: Admin