SQL列出了最受欢迎的项目



我有一个名为 kb_views的表

有一个名为 kb_seq的列,它是名为 kb

的表中的 sequence

使用PHP选择最受欢迎的10个项目的最佳方法是什么?

最好的方法是SQL查询本身,如果KB_SEQ包括每个元素视图的计数您可以使用

来提取前10个
order by `kb_seq`.`count` desc limit 10

您的查询应该看起来像这样:

select * from `kb_seq` order by `kb_seq`.`count` desc limit 10

如果您没有这样的桌子,并且只有一个表格,每行是一个视图,则必须使用group

select count(*) as `viewed_times`, id FROM `kb_views` group by `viewed_item_id` order by `viewed_times` desc  limit 10 

是否适合您的要求:

SELECT 
    d.* 
FROM 
    kb d,
    (SELECT 
        s.kb_seq, COUNT(*)
    FROM 
         kb s
    INNER JOIN 
        kb_views ct ON ct.kb_seq = s.kb_seq
    GROUP BY 
        s.kb_seq 
    Order by 
        2 DESC LIMIT 10) f
where 
    d.kb_seq = f.kb_seq

请参阅此处的结果sqlfiddle

最新更新