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;
Связанные термины
Анекдоты по теме
— Когда денормализация оправдана? — Когда JOIN слишком дорог для критичных запросов. — Примеры? — Материализованные агрегаты: сохранить total_orders в таблице users. — Дублирование для аналитики: OLAP схемы специально денормализованы. — Риски? — Несогласованность. Нужны триггеры или приложение для синхронизации.
Собеседование: — Что быстрее: JOIN или подзапрос? Ответ: зависит от оптимизатора, размера данных и индексов. Интервьюер: правильный ответ. Кандидат: но это же уход от ответа! Интервьюер: нет. Это понимание того, что серебряных пуль не существует.
Программист пишет пагинацию: SELECT * FROM posts ORDER BY created_at LIMIT 20 OFFSET 10000; — Работает медленно на больших страницах. DBA: OFFSET 10000 значит база читает 10020 строк и выбрасывает 10000. — Как исправить? — Keyset pagination: WHERE created_at < $last_seen ORDER BY created_at DESC LIMIT 20