Встречается на 18% собеседований по Java
Какие виды 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
интервью вопросы и ответы