mysql - 选择最受欢迎的商品

标签 mysql select

我有以下查询:

SELECT
    l.id,
    l.name,
    l.url,
    c.name,
    COUNT(cc.id) AS popularity
FROM
    links AS l,
    categories AS c,
    clicks AS cc
WHERE
    l.category_id = c.id
AND
    l.id = cc.link_id
AND
    l.active = 1
ORDER BY
    popularity DESC
LIMIT 
    10

如您所见,我有 3 个表:链接、类别和点击。在“点击”中,每次点击数字时我都会保存一条记录。我想选择 10 个最受欢迎的链接,但我只获得最后一条记录,其中包含所有点击次数。

我的查询有什么问题?

提前致谢!

最佳答案

似乎你需要分组

SELECT
    l.id,
    l.name,
    l.url,
    c.name,
    COUNT(*) AS popularity
FROM
    links AS l, 
    categories AS c,
    clicks AS cc
WHERE  l.category_id = c.id
AND    l.id = cc.link_id
AND    l.active = 1
GROUP BY l.id, c.name
ORDER BY popularity DESC LIMIT 10

关于mysql - 选择最受欢迎的商品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37053728/

相关文章:

php - 这是从数据库获取数据的有效方法吗?

c - 在 ssh 守护进程的非阻塞套接字中,select() 在执行 nmap 脚本后总是返回 1

MYSQL多表选择查询

php - 在重复键更新时插入选择

Oracle SQL 使用 Like 和通配符

mysql - MAMP Pro 3.2 升级现在 MySQL 启动失败(Yosemite)

mysql - 如何在mysql查询中获取上个月(不是最近30天)的记录

mysql - 一个空的 tearDown 方法使 phpunit 测试通过

mysql - 插入 MySQL 时跳过列

Php mysqli 选择位置和顺序