gpt4 book ai didi

MySQL语法错误

转载 作者:行者123 更新时间:2023-11-30 00:51:30 25 4
gpt4 key购买 nike

我有 3 张 table :

user(id, name);
advert(id,name,category_id,user_id);
category(id,category_name);

我想要做的是向某个用户显示他在每个类别中有多少广告。我必须使用子查询。我尝试过类似的方法,但根本不起作用。我尝试过的看起来像这样:

SELECT c.id,c.name count(advert) number_of_adverts
FROM category c
GROUP BY c.name
HAVING count(advert)=(SELECT count(a.id)
FROM advert a
INNER JOIN user ON a.user_id=u.id
WHERE u.id="1"
HAVING a.category_id=c.id);

我知道这是错误的,但我不太明白我应该如何做才能使其发挥作用。

最佳答案

您正在寻找 GROUP BY 子句。

SELECT c.id, c.name, COUNT(a.id) AS number_of_adverts
FROM user u
JOIN advert a ON (u.id = a.user_id)
JOIN category c ON (c.id = a.category_id)
WHERE u.user_id = '999'
GROUP BY c.id, c.name

您不能使用子查询,因为可能有多个类别,每个类别可能有多个广告。

关于MySQL语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20933860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com