Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

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