mysql - 带计数的一对多关系查询

标签 mysql sql

我有以下查询:

this->getDoctrine()->getManager();
        $sql = "SELECT shop.*
                FROM instagram_shop shop
                LEFT JOIN instagram_shop_picture picture 
                ON picture.shop_id = shop.id
                WHERE COUNT(picture) = 0
                AND shop.isLocked = 0
                AND shop.expirydate IS NOT NULL 
                AND shop.expirydate > now()
                AND shop.deletedAt IS NULL
                "

想要获取所有包含 0 张图片的商店。但这会返回一个 sql 错误:

General error: 1111 Invalid use of group function

这是为什么?

最佳答案

SELECT shop.id
FROM instagram_shop shop
LEFT JOIN instagram_shop_picture picture ON picture.shop_id = shop.id
WHERE shop.isLocked = 0
AND shop.expirydate IS NOT NULL 
AND shop.expirydate > now()
AND shop.deletedAt IS NULL
GROUP BY shop.id
HAVING COUNT(picture.shop_id) = 0

关于mysql - 带计数的一对多关系查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26952534/

相关文章:

php - 使用不带存储过程的 MySQL 是否会错过某些内容?

sql - 仅使用 SQL 的 MySQL INSERT

sql - 在SQL中,如何删除基于多列的重复行?

sql - 使用 PK 将行插入 SQL Server 表中特定位置

mysql - Yii2 : Model returning NULL value (not set) when using Widget Detail VIew

MySQL - 如何从最接近开始的点获取范围?

php - 如何在mysql中使用 ".="将mysql查询连接成单个查询

Mysql - 合并具有唯一值的行 - 对它们进行分组和计数

sql - 转换子查询加入

mysql - 根据 id 使用新列值更新整个列