Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
sql:mysql:join [2024/10/30 20:11] – mirocow | sql:mysql:join [2024/10/30 20:31] (текущий) – mirocow | ||
---|---|---|---|
Строка 5: | Строка 5: | ||
{{: | {{: | ||
- | ===== SQL INNER JOIN ===== | + | ===== JOINS ===== |
+ | === author === | ||
+ | |||
+ | ^ id ^ name ^ | ||
+ | | 1 | Вася | ||
+ | | 2 | Коля | ||
+ | | 3 | Петя | ||
+ | |||
+ | === util === | ||
+ | |||
+ | ^ id ^ author_id | ||
+ | | 1 | 1 | Вася Мега продукт | ||
+ | | 2 | 0 | Крутая, | ||
+ | |||
+ | ===== SQL INNER / INNER JOIN - естественное или внутреннее соединение ===== | ||
+ | |||
+ | Возвращает записи, | ||
+ | |||
+ | <code sql> | ||
+ | -- Выводим все поля | ||
+ | select * | ||
+ | -- Указываем таблицу авторов | ||
+ | from author | ||
+ | -- Соединяем с таблицей программ | ||
+ | inner join util | ||
+ | -- Указываем условие | ||
+ | on author.id = util.author_id | ||
+ | </ | ||
+ | |||
+ | ^ id ^ name | id | author_id | ||
+ | | 1 | Вася | ||
+ | |||
+ | ===== LEFT JOIN ===== | ||
+ | |||
+ | Возвращает все записи из левой таблицы и соответствующие записи из правой таблицы. Если соответствия нет, возвращает NULL для правой таблицы. | ||
+ | |||
+ | <code sql> | ||
+ | -- Выводим все поля | ||
+ | select * | ||
+ | -- Указываем таблицу авторов | ||
+ | from author | ||
+ | -- Соединяем с таблицей программ | ||
+ | left join util | ||
+ | -- Указываем условие | ||
+ | on author.id = util.author_id | ||
+ | </ | ||
+ | |||
+ | ^ id ^ name | id | author_id | ||
+ | | 1 | Вася | ||
+ | | 2 | Коля | ||
+ | | 3 | Петя | ||
+ | |||
+ | ===== RIGHT JOIN ===== | ||
+ | |||
+ | Возвращает все записи из правой таблицы и соответствующие записи из левой таблицы. Если соответствия нет, возвращает NULL для левой таблицы. | ||
+ | |||
+ | <code sql> | ||
+ | -- Выводим все поля | ||
+ | select * | ||
+ | -- Указываем таблицу авторов | ||
+ | from author | ||
+ | -- Соединяем с таблицей программ | ||
+ | right join util | ||
+ | -- Указываем условие | ||
+ | on author.id = util.author_id | ||
+ | </ | ||
+ | |||
+ | ^ id ^ name | id | author_id | ||
+ | | 1 | Вася | ||
+ | | NULL | NULL | 2 | 0 | Крутая, | ||
+ | |||
+ | ===== LEFT OUTER JOIN - левое внешнее соединение ===== | ||
+ | |||
+ | Возвращает все записи из левой таблицы и соответствующие записи из правой таблицы. Если соответствия нет, возвращает NULL для правой таблицы. | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== RIGHT OUTER JOIN - правое внешнее соединение ===== | ||
+ | |||
+ | Возвращает все записи из правой таблицы и соответствующие записи из левой таблицы. Если соответствия нет, возвращает NULL для левой таблицы. | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== FULL JOIN - полное внешнее соединение ===== | ||
+ | |||
+ | Возвращает все записи, | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== CROSS JOIN - перекрестное или декартово соединение ===== | ||
+ | |||
+ | Выполняет декартово произведение двух таблиц, | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== UNIOUN ===== | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | </ | ||