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

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

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

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

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

Stefan

1 Ответ

10 голосов
/ 26 апреля 2010
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...