它看起來像你正在做的是選擇職位的計數每個用戶,爲所有用戶。你並不需要查詢包裝成集從查詢結果,你就應該能夠通過
SELECT user_id, count(*) as totalPosts
from user_posts
group by user_id
做到這一點現在,如果你想要更多的用戶信息,與它一起標記,然後你可以加入到用戶表,如:
SELECT users.LastName, users.FirstName, etc, user_id, count(*) as totalPosts
from user_posts
join users
on user_posts.user_id = users.user_id
group by user_id
此外,由zerkms指出,如果這是你要總是爲某種運行總總的東西,我會強烈建議您更新用戶表中有一個「 totalPosts「列作爲整數。然後,每當一個新條目添加到user_posts表,它只是有一個觸發...
更新用戶設置totalPosts = totalPosts +1其中USER_ID =用戶ID使得後
然後,不必總是重新查詢總數。就像S/O中的一些總數一樣,用戶還有其他的總點數,總awr等數據。對於跟隨的標籤,我相信他們也會計算每個標籤有多少個問題。不要過度使用COUNT()將會成爲將來的性能殺手的東西..
對於龐大的數據庫,它可能值得預先計算帖子計數到一個單獨的'users'表列並使用它而不是每次動態計算它 – zerkms
我希望每個用戶的帖子數,爲什麼我這樣做這樣的查詢... @zerkms –
我明白,你需要預先計算數據和商店,如果數據庫很大,你需要經常檢索 – zerkms