我使用MySQL 4.2,我有2個表:MySQL查詢計算與加入不同的表
tbl_User商店的用戶ID和REGCODE。 REGCODE是用於註冊服務的代碼用戶。 tbl_Message存儲由每個用戶發佈的消息。
我需要查詢tbl_User中的所有用戶的相應REGCODE才能獲得總數。然後,我想知道這些用戶中有多少人在tbl_Message中至少有一個其USERID與AUTHORID相匹配的條目。最後一行是用戶擁有帖子的百分比。
我的目標是計算從最後一排兩個表中的比例,但我不知道如何加入表中查詢得到正確的答案。
表圖表:http://img526.imageshack.us/img526/6105/tablep.png
我昨天問到這個問題,並@ mathematical.coffee告訴我一個簡單的查詢得到我想要的結果。它起初工作,但我發現查詢與COUNT(tbl_User.USERID)的一些問題,並在我接受答案後離開加入。
你可以從這個查詢看到,「COUNT(tbl_User.USERID)爲totalUsers」由左側影響連接條件,因而總的用戶數是錯誤的。 有人可以幫助我,非常感謝!
SELECT REGCODE,
COUNT(tbl_User.USERID) as totalUsers,
COUNT(tbl_Message.MESSAGEID) as usersWhoPosted
COUNT(tbl_Message.MESSAGEID)/COUNT(tbl_User.USERID)*100 As Percent
FROM tbl_User
LEFT JOIN tbl_Message ON tbl_User.USERID=tbl_Message.AUTHORID
WHERE REGCODE BETWEEN 9001 AND 9008
GROUP BY REGCODE
結果:
REGCODE totalUsers usersWhoPosted Percent
9001 763 233 30.5374
...
9008 345 235 68.1159
'COUNT(DISTINCT tbl_User.USERID)作爲totalUsers' – 2012-01-31 00:24:40