Я хочу получить последние 100 событий, которые произошли. События разбросаны по нескольким таблицам. Вот пример:
SELECT * FROM log_items_purchased ORDER BY timestamp DESC LIMIT 100
UNION
SELECT * FROM log_items_fulfilled ORDER BY timestamp DESC LIMIT 100
UNION
SELECT * FROM log_items_shipped ORDER BY timestamp DESC LIMIT 100
Это вернет до 300 записей. Затем я бы взял набор результатов, упорядочил по метке времени и взял бы первые 100 записей. Как я могу выполнить это в одном запросе SQL, где SQL будет возвращать только 100 записей в наборе результатов.
Я понимаю, что это можно сделать, удалив LIMIT 100 из каждого запрос, а затем сделать внешний запрос, который добавляет LIMIT 100, но эти таблицы действительно большие, и это действительно неэффективно.