В чем разница между видами JOIN
Python
Middle
Без компании
В чем разница между видами JOIN
Ответы
JOIN в SQL объединяет данные из двух таблиц. Основные виды:
- **INNER JOIN** - возвращает только совпадающие строки из обеих таблиц:
```
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id
```
- **LEFT JOIN** - все строки из левой таблицы + совпадающие из правой. Если нет совпадений - NULL в правых колонках:
```
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id
```
- **RIGHT JOIN** - аналогично LEFT, но приоритет у правой таблицы (редко используется).
- **FULL JOIN** - объединяет LEFT и RIGHT, возвращает все строки из обеих таблиц с NULL где нет совпадений.
- **CROSS JOIN** - декартово произведение - каждая строка первой таблицы соединяется с каждой строкой второй.
- **SELF JOIN** - соединение таблицы с самой собой (например, для иерархических данных).
Ключевое отличие - в том, какие строки включаются в результат при отсутствии совпадений. INNER строгий, LEFT/RIGHT включают одну таблицу полностью, FULL - обе.