![Igor Babin](https://media.publit.io/file/fil-7e5.webp)
Понимание и использование SQL Join
SQL Join является ключевым инструментом в arsenal любого разработчика баз данных. Это мощная функция, которая позволяет объединять данные из двух или более таблиц, основываясь на связанных между собой столбцах. В этой статье мы подробно рассмотрим различные типы SQL Join, их особенности и применение, а также приведем практические примеры использования этого инструмента.
![Понимание и использование SQL Join](https://media.publit.io/file/fil-wdi.webp)
# SQL Join
SQL Join используется для объединения строк из двух или более таблиц на основе связанного между ними столбца.
## Типы SQL Join
### 1. INNER JOIN
`INNER JOIN` возвращает строки, когда есть хотя бы одно совпадение в обеих таблицах.
```sql
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
```
### 2. LEFT (OUTER) JOIN
`LEFT JOIN` возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если нет совпадений, результат - NULL с правой стороны.
```sql
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
LEFT JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
```
### 3. RIGHT (OUTER) JOIN
`RIGHT JOIN` возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Если нет совпадений, результат - NULL с левой стороны.
```sql
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
RIGHT JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
```
### 4. FULL (OUTER) JOIN
`FULL JOIN` возвращает строки, когда есть совпадение в одной из таблиц. То есть, если в левой таблице есть строки, которые не совпадают с правой таблицей, или наоборот, они все равно будут включены в результат.
```sql
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
FULL JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
```
### 5. SELF JOIN
`SELF JOIN` - это обычное объединение, но таблица объединяется сама с собой.
```sql
SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2
FROM Customers A, Customers B
WHERE A.CustomerID = B.CustomerID;
```
## Правила использования SQL Join
1. Всегда используйте `ON` для объединения таблиц. `ON` позволяет вам объединять таблицы на основе столбцов, а не на основе строк.
2. Всегда указывайте тип объединения. Если вы не указываете тип объединения, SQL по умолчанию использует `INNER JOIN`.
3. Если вы хотите включить все строки из одной таблицы, независимо от того, есть ли совпадения в другой таблице, используйте `LEFT JOIN` (если важна левая таблица) или `RIGHT JOIN` (если важна правая таблица).
4. Если вы хотите включить все строки из обеих таблиц, используйте `FULL JOIN`.
5. Используйте `SELF JOIN`, когда вам нужно объединить таблицу с самой собой.