Сложный SQL-запрос... 3 таблицы и нуждаются в самых популярных за последние 24 часа с использованием временных меток

У меня есть 3 таблицы со столбцом в каждой, который относится к одному идентификатору в строке. Я ищу запрос инструкции sql, который проверит все 3 таблицы для любых строк за последние 24 часа (86400 секунд) я сохранил метки времени в каждой таблице в столбце time.

после того, как я получу этот запрос, я смогу сделать следующий шаг, который заключается в том, чтобы проверить, сколько идентификаторов повторяется, чтобы я мог Сортировать по наиболее популярным в массиве и ограничить его до вершины 5...

любые идеи приветствуются! :)

спасибо заранее.

Стефан

1 ответов


SELECT  id, COUNT(*) AS cnt
FROM    (
        SELECT  id
        FROM    table1
        WHERE   time >= NOW() - INTERVAL 1 DAY
        UNION ALL
        SELECT  id
        FROM    table2
        WHERE   time >= NOW() - INTERVAL 1 DAY
        UNION ALL
        SELECT  id
        FROM    table3
        WHERE   time >= NOW() - INTERVAL 1 DAY
        ) q
GROUP BY
        id
ORDER BY
        cnt DESC
LIMIT 5