【问题标题】:Mysql select count on left join with condition not workingMysql select count on left join with condition not working
【发布时间】:2013-11-17 11:32:00
【问题描述】:

我需要计算左表的记录数,我阅读了其他问题并以这个查询结束,但 COUNT 的条件被忽略了

SELECT  a.name, COUNT( f.status <> 'e' ) AS total               
FROM    album AS a LEFT JOIN photo AS f
        ON a.id = f.idalbum
WHERE   a.iduser = 4
GROUP   BY a.id

是 MySQL 5 数据库

【问题讨论】:

    标签: mysql sql select count


    【解决方案1】:

    您不能在 COUNT 语句中指定条件。

    试试这个

       SELECT  a.name, COUNT( f.status  ) AS total               
       FROM    album AS a LEFT JOIN photo AS f
        ON a.id = f.idalbum
       WHERE   a.iduser = 4 or f.status <> 'e'
       GROUP   BY a.id
    

    【讨论】:

    • 在WHERE中添加条件隐藏应该返回0的记录(左表没有记录)
    • 如果您想要所有记录,则需要将 AND 更改为 OR 语句
    • 你得到了你需要的东西吗?如果不尝试给出一个小提琴示例或示例数据。
    • 欢迎您 :) ,我刚刚在 sqlfiddle 中对其进行了测试 :) 。祝你好运
    【解决方案2】:

    如果你这样做:

    SELECT  a.name, COUNT( f.status ) AS total               
    FROM    album AS a LEFT JOIN photo AS f
        ON a.id = f.idalbum
    WHERE   a.iduser = 4 and f.status != 'e'
    GROUP   BY a.id
    

    【讨论】:

      猜你喜欢
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-23
      • 1970-01-01
      相关资源
      最近更新 更多