我正在使用MySQL 4.2。从两个表格计算MySQL查询
我有2个表:
tbl_User
商店的用户ID和REGCODE。 REGCODE是用于注册服务的代码用户。tbl_Message
存储由每个用户发布的消息。
我需要查询tbl_User中的所有用户的相应REGCODE才能获得总数。 然后,我想知道这些用户中有多少人在tbl_Message中至少有一个其USERID与AUTHORID相匹配的条目。 最后一行是用户拥有帖子的百分比。
我的目标是计算最后一行中两个表的百分比,但我不确定如何在查询中连接表以获得正确答案。谢谢你的帮助!
表图表: http://img526.imageshack.us/img526/6105/tablep.png
这里是我使用的查询:
Select 'Percentage',
Sum(Case
When tbl_User.REGCODE = 9001 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End)/Sum(Case When tbl_User.REGCODE = 9001 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9002 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End)/Sum(Case When tbl_User.REGCODE = 9002 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9003 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End)/Sum(Case When tbl_User.REGCODE = 9003 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9004 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End)/Sum(Case When tbl_User.REGCODE = 9004 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9005 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End)/Sum(Case When tbl_User.REGCODE = 9005 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9006 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End)/Sum(Case When tbl_User.REGCODE = 9006 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9007 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End)/Sum(Case When tbl_User.REGCODE = 9007 Then 1 Else 0 End) * 100.0,
Sum(Case
When tbl_User.REGCODE = 9008 And
tbl_User.USERID = tbl_Message.AUTHORID Then 1 Else 0
End)/Sum(Case When tbl_User.REGCODE = 9008 Then 1 Else 0 End) * 100.0
From tbl_User
left Join tbl_Message
tbl_Message ON tbl_User.USERID = tbl_Message.AUTHORID
Where tbl_Message.AUTHORID IS NOT NULL
噢,我的天啊..我的头 – 2012-01-30 06:07:10
请问您可以添加两张桌子的结构吗?这将有助于 – Kangkan 2012-01-30 06:07:34
如果你解释(用文字)你正在尝试做什么 - 例如“每个用户收件箱中他们是作者的邮件的百分比”? – 2012-01-30 06:10:27