UNION / UNION ALL
Объединяет результаты двух SELECT в один. UNION убирает дубли, UNION ALL оставляет все строки.
SELECT col FROM t1
UNION [ALL]
SELECT col FROM t2;Объяснение
Пример
-- Объединить активных и VIP пользователей без дублей
SELECT id, name FROM active_users
UNION
SELECT id, name FROM vip_users
ORDER BY name;Связанные термины
Анекдоты по теме
— Что такое lateral join? — Это когда правая часть JOIN может ссылаться на строки из левой. — Зачем? — Классика: для каждого пользователя — его последние 3 заказа. SELECT u.*, o.* FROM users u, LATERAL (SELECT * FROM orders WHERE user_id = u.id ORDER BY date DESC LIMIT 3) o;
Разработчик: — У меня запрос на 8 таблиц через JOIN, подзапросы, оконные функции внутри WHERE и GROUP BY на хэш с миллиардом строк. Он идёт 3 дня. Как оптимизировать? DBA: — TRUNCATE TABLE карьера_разработчика. И иди в менеджеры.
— Что такое bulk_create в Django? — Создаёт много объектов одним запросом. User.objects.bulk_create([User(name=n) for n in names]) — Вместо loop с .create()? — Да. 1000 объектов: loop = 1000 INSERT, bulk_create = 1 INSERT с 1000 строками. — Насколько быстрее? — В 10–50 раз.