📌 Что такое join'ы?



💬 Спрашивают в 25 % собеседований



JOIN'ы (объединения) — это операции в языке SQL, которые позволяют объединять строки из двух или более таблиц на основе логических связей между ними. Существует несколько типов JOIN'ов, каждый из которых используется для разных сценариев объединения данных.



🤔 Основные типы JOIN'ов:



1️⃣ INNER JOIN:



Описание: Возвращает только те строки, которые имеют совпадающие значения в обеих таблицах.



Пример:

     SELECT employees.name, departments.department_name

FROM employees

INNER JOIN departments ON employees.department_id = departments.id;




2️⃣ LEFT JOIN (LEFT OUTER JOIN):



Описание: Возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если совпадений нет, то в столбцах правой таблицы будут NULL.



Пример:

     SELECT employees.name, departments.department_name

FROM employees

LEFT JOIN departments ON employees.department_id = departments.id;




3️⃣ RIGHT JOIN (RIGHT OUTER JOIN):



Описание: Возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Если совпадений нет, то в столбцах левой таблицы будут NULL.



Пример:

     SELECT employees.name, departments.department_name

FROM employees

RIGHT JOIN departments ON employees.department_id = departments.id;




4️⃣ FULL JOIN (FULL OUTER JOIN):



Описание: Возвращает все строки, когда есть совпадения в одной из таблиц. Если совпадений нет, то в соответствующих столбцах будут NULL.



Пример:

     SELECT employees.name, departments.department_name

FROM employees

FULL JOIN departments ON employees.department_id = departments.id;




5️⃣ CROSS JOIN:



Описание: Возвращает декартово произведение строк из двух таблиц. Каждая строка из первой таблицы соединяется со всеми строками из второй таблицы.



Пример:

     SELECT employees.name, departments.department_name

FROM employees

CROSS JOIN departments;




6️⃣ SELF JOIN:



Описание: Использует JOIN для объединения таблицы с самой собой. Это полезно, когда нужно сравнить строки внутри одной таблицы.



Пример:

     SELECT e1.name AS Employee1, e2.name AS Employee2

FROM employees e1

INNER JOIN employees e2 ON e1.manager_id = e2.id;




🤔 Краткий ответ



JOIN'ы в SQL — это операции для объединения строк из двух или более таблиц на основе логических связей. Основные типы JOIN'ов включают:



INNER JOIN: Только совпадающие строки.



LEFT JOIN: Все строки из левой таблицы и совпадающие из правой.



RIGHT JOIN: Все строки из правой таблицы и совпадающие из левой.



FULL JOIN: Все строки из обеих таблиц, с заполнением NULL при отсутствии совпадений.



CROSS JOIN: Декартово произведение строк.



SELF JOIN: Объединение таблицы с самой собой.



🔥 ТОП ВОПРОСОВ С СОБЕСОВ



🔒 База собесов | 🔒 База тестовых