我有這樣的數據集:計數2列
id uid follows_uid status
1 1 2 ACTIVE
2 1 3 ACTIVE
3 3 1 ACTIVE
4 4 1 ACTIVE
5 2 1 ACTIVE
上給予uid
我要計算有多少用戶在下面,多少後跟(給定用戶)。
結果集將是:
following followers
2 3
這裏是做工作的查詢:
SELECT COUNT(*) as following,
(SELECT COUNT(*) FROM user_followers where follows_uid = 1 ) as followers
FROM user_followers
WHERE uid = 1 and `status` = 'ACTIVE'
現在的問題是,In't有任何其他方式來完成這件事?或者它是實現這一目標的最佳方式?
我的查詢和這個有什麼區別?請用優化角度解釋 – Shaharyar
@Shaharyar抱歉,沒有注意到它們是相同的。我相信使用子查詢是最快的方法,如果適當的列索引,因爲然後每個計數可以利用索引然後 – FuzzyTree
謝謝,您的意見是合理的所有答案。現在你會怎麼說@davmos的回答?它是否比實際查詢更優化? – Shaharyar