Что такое UNION
Python
Middle
Без компании
Что такое UNION
Ответы
UNION в Python (обычно в контексте SQL через библиотеки типа `sqlite3` или SQLAlchemy) — это оператор, объединяющий результаты двух или более SELECT-запросов в один набор данных **без дубликатов**.
**Ключевые особенности:**
- Все SELECT-запросы должны иметь одинаковое количество столбцов.
- Типы данных в соответствующих столбцах должны быть совместимы.
- `UNION ALL` сохраняет дубликаты, в отличие от `UNION`.
**Пример с SQLite:**
```
import sqlite3
conn = sqlite3.connect(":memory:")
cursor = conn.cursor()
# Создаем таблицы и данные
cursor.execute("CREATE TABLE table1 (id INTEGER, name TEXT)")
cursor.execute("INSERT INTO table1 VALUES (1, 'Alice'), (2, 'Bob')")
cursor.execute("CREATE TABLE table2 (id INTEGER, name TEXT)")
cursor.execute("INSERT INTO table2 VALUES (2, 'Bob'), (3, 'Charlie')")
# UNION (без дубликатов)
cursor.execute("SELECT name FROM table1 UNION SELECT name FROM table2")
print(cursor.fetchall()) # [('Alice',), ('Bob',), ('Charlie',)]
# UNION ALL (с дубликатами)
cursor.execute("SELECT name FROM table1 UNION ALL SELECT name FROM table2")
print(cursor.fetchall()) # [('Alice',), ('Bob',), ('Bob',), ('Charlie',)]
```