SQL列表最受欢迎的项目

时间:2015-05-12 18:02:34

标签: php sql

我有一个名为kb_views的表,每次查看一个项目时都会在此表中插入一个新行

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

的表中项目的kb个数字

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

2 个答案:

答案 0 :(得分:3)

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

拉出前10名
order by `kb_seq`.`count` desc limit 10

,您的查询应如下所示:

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

如果你没有这样的表,并且只有一个表,每行是一个视图,你将不得不使用组

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

答案 1 :(得分:1)

这是否符合您的要求:

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