Встречается на собеседованиях • сегодня
Какие виды join знаешь
Существует несколько видов операций соединения (JOIN), которые позволяют объединять строки из двух или более таблиц на основе связанных между ними столбцов. Вот его основные виды:
INNER JOIN
- Возвращает строки, когда существует хотя бы одно совпадение в обеих таблицах. Если в одной из таблиц нет совпадений, строки из этой таблицы не включаются в результат.
sql
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;LEFT JOIN (или LEFT OUTER JOIN)
- Возвращает все строки из левой таблицы и совпавшие строки из правой таблицы. Если совпадений в правой таблице нет, результат будет содержать NULL в столбцах правой таблицы.
sql
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;RIGHT JOIN (или RIGHT OUTER JOIN)
- Возвращает все строки из правой таблицы и совпавшие строки из левой таблицы. Если совпадений в левой таблице нет, результат будет содержать NULL в столбцах левой таблицы.
sql
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
RIGHT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;FULL JOIN (или FULL OUTER JOIN)
- Возвращает строки, когда существует хотя бы одно совпадение в любой из таблиц. Если нет совпадений, результат будет содержать NULL как в столбцах левой, так и в столбцах правой таблицы для этих строк.
sql
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
FULL JOIN Customers ON Orders.CustomerID = Customers.CustomerID;CROSS JOIN
- Возвращает декартово произведение всех строк из левой таблицы на все строки из правой таблицы. Этот тип соединения не требует указания условия соединения и может привести к очень большому объему результата, если таблицы содержат много строк.
sql
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
CROSS JOIN Customers;SELF JOIN
- Не является отдельным типом, а скорее методикой, при которой таблица соединяется сама с собой, как бы будучи двумя разными таблицами. Это полезно для выполнения операций сравнения внутри одной и той же таблицы.
sql
SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2
FROM Customers A, Customers B
WHERE A.CustomerID < B.CustomerID;Каждый тип JOIN используется в зависимости от требуемых в запросе данных и логики их соединения.
Feb. 27, 2024, easyoffer
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
