我有一個非常簡單的表 - follow
- 其中我存儲的追隨者。上述獲取用戶與追隨者,並沒有關注者
user | following
-----------------
1 | 2
該裝置用戶1
跟隨用戶2
。
我想要顯示主頁上的所有用戶,並命令他們購買最多關注者,然後返回其他沒有關注者的用戶。下面的查詢正在顯示用戶,但我無法弄清楚如何檢索沒有任何關注者的用戶。我試過RIGHT JOIN users u ON f.following=u.id
但這給我奇怪的結果。
此查詢返回用戶2
誰有追隨者,但不返回用戶1
和3
誰沒有追隨者。
編輯:此查詢也檢查用戶是否關注,這就是爲什麼我加入使用ID爲1作爲測試。
SELECT
u.id
,u.username
,u.avatar
,COUNT(1) AS followers
,ul.*
,fo.*
FROM follow f
LEFT JOIN users u ON f.following=u.id
LEFT JOIN follow fo ON fo.following=u.id AND fo.user=1
LEFT JOIN users_likes ul ON ul.likes=u.id AND ul.user=1
GROUP BY f.following
ORDER BY COUNT(1) DESC
SQL小提琴:http://sqlfiddle.com/#!2/98f65/1
是不是那麼簡單,如[*見示例*](http://sqlfiddle.com/#!2/3421e/2)? – 2014-11-01 20:46:49