我有两张桌子:wallpapers
:
id img cat_id
downloads
: id wall_id
1 10
2 10
3 2
. .
我想从特定的
cat_id
下载最多的壁纸。我的问题:
SELECT *
FROM wallpapers
WHERE cat_id = 10
AND id IN
(SELECT wall_id
FROM (SELECT wall_id, count(*)
FROM downloads
GROUP BY wall_id
ORDER BY count(*) DESC))
但它什么也没回!
我的框架是:
$rows = $this->db->query($sql);
var_dump($rows);
return;
输出:
bool(false)
最佳答案
只需按wall_id分组,这样就可以获得每个wall_id的总下载量,然后
按他们点
ORDER BY count(downloads.wall_id) DESC
并添加限制
LIMIT 3
假设你想获得前三名的下载量
所以你最后的问题是这样的
SELECT *
FROM wallpapers
JOIN downloads
ON wallpapers.id = downloads.wall_id
GROUP BY downloads.wall_id ORDER BY count(downloads.wall_id) DESC limit 3
关于php - 如何获得最多下载记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40213893/