我有三個表:SQL結合計數與加盟
Messages
messageid | userid | text
Ex: 1 | 1303 | hey guys
Users
userid | username
Ex:
1303 | trantor
1301 | tranro1
1302 | trantor2
Favorites
messageid | userid
Ex:
1 | 1302
1 | 1301
我想要做什麼,是顯示了用戶名的表,計算他們的消息被收藏一定數量的次數倍。在上面的例子中,我想要查詢「每個用戶有多少消息已經被喜歡兩次?」 ,它會顯示有一行說
trantor | 1
自然延伸是與「至少2」更換兩次準確,一表「超過6」等我試着用加入到計數相結合,發現自己很困惑。而且由於表格很大,我得到了數量,但沒有信心我的查詢工作正常。我已閱讀this article但我仍然困惑:L
我有什麼至今:
SELECT USERS.username, COUNT(FAVORITES.id) FROM USERS INNER JOIN FAVORITES ON FAVORITES.userID=USERS.id WHERE COUNT(FAVORITES.id) > 2;
但是,我認爲它的工作原理。
在S.O.關於「相關子查詢」,我發現了these questions,但我徹底困惑。
會是這樣的嗎?
SELECT USERS.username,
, ( SELECT COUNT(FAVORTIES.userid)
FROM FAVORITES INNER JOIN ON MESSAGES
WHERE FAVORITES.messageid = MESSAGES.messageid
)
FROM USERS