0
因此,我有三个表。重命名内部联接并将其用于随后的内部联接
1) business:
-> id (varchar) id of business
-> name (varchar) name of business
2) review:
-> business_id (varchar) id of reviewed business
-> user_id (varchar) id of user who reviewed
3) user:
-> id (varchar) id of user
-> name (varchar) name of user
-> review_count (int) number of reviews written by the user
我想写提取business.id
S和business.name
S作被谁写了超过10条的用户评论这些企业的查询。
我想过在user
和review
上做内部连接的条件user.id = review.user_id
其中user.id in (select id from user where review_count > 10)
。在选择仅属于写入超过10条评论的用户的user.id
之后,这将在上述表格中执行内部连接。接下来,我希望在此新表和business
表上执行内部联接,条件是business.id = new_table.business_id
,其中new_table
是通过对审阅和用户执行先前的内部联接而获得的表。
我知道我的重命名语法可能有问题。
我收到语法错误:Error: near "where": syntax error
。我正在使用sqlite3。
这是我到目前为止。
select business.id, business.name
from business inner join
(
review inner join user
on review.user_id = user.id
where user.id in (
select id
from user
where review_count > 10)
) as R
on R.business_id = business.id;
谢谢,但review没有review_count列。所以我不确定review.review_count> 10是否可行。我已经修复了我的问题陈述 – tofu
,如果我们只删除和“review.review_count> 10”并将其放在下一行的末尾,它似乎工作。 – tofu
我的意思是,如果只是我们删除和“review.review_count> 10”,将其更改为“和user.review_count> 10”并将其追加到最后一行,它似乎工作 – tofu