gpt4 book ai didi

mysql - 涉及聚合函数的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 12:20:35 24 4
gpt4 key购买 nike

我在编写此查询时遇到问题。我不知道我是否应该实际使用计数,因为这会返回实际计数,并且我想返回尚未进行审核的人员。无论如何,这是我正在尝试编写的查询。

Find those users that haven’t reviewed any businesses.

我正在使用的表是

reviews;
+-------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------+------+-----+---------+-------+
| business_id | int(11) | NO | PRI | NULL | |
| user_id | int(11) | NO | PRI | NULL | |
| review_id | int(11) | NO | PRI | NULL | |
| review_date | date | YES | | NULL | |
| star_rating | int(1) | YES | | 1 |


businesses
+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| business_id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | YES | | NULL | |
| city | varchar(40) | YES | | NULL | |
| state | varchar(20) | YES | | NULL | |
| full_address | varchar(120) | YES | | NULL | |

users;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| user_id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | YES | | NULL | |
| user_since | date | YES | | NULL

这是我到目前为止所拥有的

SELECT reviews.user_id FROM reviews
JOIN businesses ON (reviews.business_id = businesses.business_id)
GROUP BY reviews.user_id ASC
HAVING COUNT(*) > 0;

这返回 0 个结果,我认为这是不对的,因为有人可以成为用户而不写评论。但我不知道我还能做什么。谢谢

编辑:我弄清楚了最后一个查询,但现在我正在尝试完成这个查询!

Find the users that have reviewed every business.

最佳答案

您需要用户表而不是业务表。

通过将评论表左连接到用户表,我们所说的是 - 获取所有用户,如果他们没有留下评论,则将这些列保留为 NULL。然后在 where 子句中,我们仅选择评论列为空的结果,从而选择未留下评论的用户。

select u.User_ID 
from
users u
left join reviews r
on r.user_id = u.user_id
where r.review_id is null

关于mysql - 涉及聚合函数的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29086476/

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