我有3个表,每个表中有一列与每行一个ID相关。我正在寻找一个sql语句查询,它将检查过去24小时(86400秒)中所有行的所有3个表我已经在列time
下的每个表中存储了时间戳。
在我得到这个查询后,我将能够进行下一步,然后检查有多少ID重复出现,这样我就可以按照阵列中最受欢迎的方式进行排序,并将其限制在前5位。 ..
欢迎任何想法! :)
提前致谢。
的Stefan
答案 0 :(得分:10)
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