mysql - 按计数排序的多个连接会忽略 where 条件

标签 mysql count where-clause

我试图仅从 video_index 中获取属于category_video_rel 中特定类别的行,并按 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'”。

我不知道我做错了什么,请帮忙。

最佳答案

您的 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

关于mysql - 按计数排序的多个连接会忽略 where 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30524901/

相关文章:

mysql - WHERE 子句如何工作(互换 LHS 和 RHS)

从服务器检索多行时出现php错误

mysql - 从一个 MySQL 表中选择,即使 count 为 0 也返回 count(id)

python - 在sqlalchemy中批量更新的where子句中添加多个条件

python - 计算列表列表中的不同值 - Python

python - 计算用户输入的偶数 PYTHON 3

mysql - 我如何在 SQL 中合并多个 WHERE (STUCK)

mysql - 无缝地同时提供 WP-Members 和 Facebook 登录选项

Mysql存储过程错误——LOOP和CURSOR

mysql - 类似 IN 的 SQL 查询