php - 复杂的 SQL 查询... 3 个表,需要最近 24 小时内最流行的使用时间戳

标签 php sql mysql database

我有 3 个表,每个表中有一列与每行一个 ID 相关。我正在寻找一个 sql 语句查询,它将在过去 24 小时(86400 秒)内检查所有 3 个表中的任何行,我在 time 列下的每个表中存储了时间戳。

在我得到这个查询后,我将能够执行下一步,然后检查有多少 ID 重复出现,这样我就可以按数组中最流行的进行排序,并将其限制在前 5 个。 ..

欢迎任何想法! :)

提前致谢。

斯特凡

最佳答案

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

关于php - 复杂的 SQL 查询... 3 个表,需要最近 24 小时内最流行的使用时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2714446/

相关文章:

php - Android 未收到 PHP 服务器的响应

php - 我应该使用哪个索引来混合 WHERE 和 ORDER BY

MYSQL - 我如何用随机日期填充一行?

mysql - 为连接两列值创建触发器时出现语法错误

sql - 为什么交叉应用会使查询变慢?

php - 通过 Codeigniter 更新数据库中的条目并且未获取以前的值

php - 将值复制到另一个 mysql 数据库

php - sphinx php api 不工作

php - 在 CodeIgniter 中选择 AVG

php - 检查用户是否已投票支持他可以投票的最大数量的项目