Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
sql:mysql:join [2024/10/30 20:05] mirocowsql:mysql:join [2024/10/30 20:31] (текущий) mirocow
Строка 3: Строка 3:
 ====== Join / Sql / database ====== ====== Join / Sql / database ======
  
-{{:sql:mysql:sql-join_dmi3vo.jpg|}}+{{:sql:mysql:sql-join_dmi3vo.jpg?600|}} 
 + 
 +===== 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> 
 + 
 +