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