2015-05-29 32 views
0

我想只从属于来自category_video_rel的特定类别的video_index中获取行,并按COUNT的查看次数排序结果。这是我使用的查询:按计数排序的多个连接忽略条件

SELECT 
     COUNT(DISTINCT view_count.id) AS count, 
     view_count.remove, 
     view_count.video_id, 
     video_index.id AS video_id, 
     video_index.active, 
     video_index.remove, 
     video_index.title AS title, 
     video_index.date_published AS date_published, 
     category_video_rel.active, 
     category_video_rel.remove, 
     category_video_rel.video_id AS cv_video_id, 
     category_video_rel.category_id AS category_id 
    FROM 
     view_count JOIN video_index 
      ON view_count.video_id = video_index.id, 
     category_video_rel JOIN video_index AS v 
      ON category_video_rel.video_id = v.id 
    WHERE 
     view_count.remove = '0' AND 
     video_index.active = '1' AND 
     video_index.remove = '0' AND 
     video_index.date_published <= '$current_time' AND 
     category_video_rel.category_id = '$category_id' AND 
     category_video_rel.active = '1' AND 
     category_video_rel.remove = '0' 
    GROUP BY 
     video_index.id 
    ORDER BY 
     count DESC 

的问题是它输出都从一个视图video_index的行数大于0类别无关的。基本上,它忽略了WHERE条件中的“category_video_rel.category_id ='$ category_id'”。

我不知道我在做什么错,请帮助。

+0

从这里开始:'回声$查询;' – Strawberry

+0

我刚刚获得“资源ID#8” –

+0

那倒(或应该)是'echo $ result;'!!! – Strawberry

回答

1

FROM子句混合旧式连接和新风格加入 而是尝试:

FROM 
    view_count JOIN video_index 
     ON view_count.video_id = video_index.id 
    JOIN category_video_rel 
     ON category_video_rel.video_id = video_index.id 
+0

工作!非常感谢! –