SQL Join
SQL Join используется для объединения строк из двух или более таблиц на основе связанного между ними столбца.
Типы SQL Join
1. INNER JOIN
INNER JOIN
возвращает строки, когда есть хотя бы одно совпадение в обеих таблицах.
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
2. LEFT (OUTER) JOIN
LEFT JOIN
возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если нет совпадений, результат - NULL с правой стороны.
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
LEFT JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
3. RIGHT (OUTER) JOIN
RIGHT JOIN
возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Если нет совпадений, результат - NULL с левой стороны.
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
RIGHT JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
4. FULL (OUTER) JOIN
FULL JOIN
возвращает строки, когда есть совпадение в одной из таблиц. То есть, если в левой таблице есть строки, которые не совпадают с правой таблицей, или наоборот, они все равно будут включены в результат.
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
FULL JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
5. SELF JOIN
SELF JOIN
- это обычное объединение, но таблица объединяется сама с собой.
SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2
FROM Customers A, Customers B
WHERE A.CustomerID = B.CustomerID;
Правила использования SQL Join
- Всегда используйте
ON
для объединения таблиц.ON
позволяет вам объединять таблицы на основе столбцов, а не на основе строк. - Всегда указывайте тип объединения. Если вы не указываете тип объединения, SQL по умолчанию использует
INNER JOIN
. - Если вы хотите включить все строки из одной таблицы, независимо от того, есть ли совпадения в другой таблице, используйте
LEFT JOIN
(если важна левая таблица) илиRIGHT JOIN
(если важна правая таблица). - Если вы хотите включить все строки из обеих таблиц, используйте
FULL JOIN
. - Используйте
SELF JOIN
, когда вам нужно объединить таблицу с самой собой.