如何找到拥有100个或以上粉丝的用户所评论的企业?

时间:2018-11-30 03:21:40

标签: sql sqlite yelp

这是我正在研究的Coursera课程中的内容。这个问题对于完成作业不是必需的,它是我为提高自己的技能所做的额外工作。 ER图为:

Yelp database ER diagram

我想看看审查业务的用户类型如何影响其是否开放。 “审阅”表连接到“业务”表和“用户”表。我想查看一家企业是否有来自拥有100个或更多粉丝的用户的评论。这是我想出的查询:

SELECT
b.name AS [Business]
,COUNT(r.id) AS [Num Reviews]
,b.is_open [Is Open]
FROM review r
  INNER JOIN business b ON r.business_id = b.id
  INNER JOIN user u ON r.user_id = u.id
WHERE r.user_id IN (SELECT
                    u.id
                    FROM user u
                    WHERE fans > 100
                    )

但是它返回一个空表。我认为问题可能出在最后一行,也许它是在查看列表中 all 条评论的user_id是否在列表中,而不是仅仅检查其中的一条。任何帮助将不胜感激,这似乎是一个非常复杂的查询,而且我对SQL还是陌生的。

2 个答案:

答案 0 :(得分:0)

评论表将企业与用户链接在一起。 复查表中的每个条目都表示用户已经撤销了业务。

您在用户表中有粉丝,因此看起来您只需要过滤粉丝数量大于100的用户,因此只需将其添加到where子句中

ID

答案 1 :(得分:0)

“风扇”数量在“用户”表中。 Business_id和User_id是Review表中的外键,可以轻松访问User表和Business表。

select business.business_id, review.r_id, business.b_is_open from business,review, user where business.business_id = review.business_id and review.user_id = user.user_id and user.fans>100