mysql – 数据库查询计数所有是/否投票和它们所属的db记录?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 数据库查询计数所有是/否投票和它们所属的db记录?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2486字,纯文字阅读大概需要4分钟。
内容图文
我有两个表,一个用于文章/民意调查,一个用于对这些文章进行投票.投票在枚举字段中进行上/下,以及其他几个选项.我正在尝试创建一个查询,它将返回我需要的文章数据,并给我所有投票的总和.不幸的是,我得到了意想不到的结果.它统计了我所有的选票,就好像他们是第一次进入,而没有其他任何人.
如何正确地将我的投票链接到他们所属的民意调查?
tblVotes
[PK] primaryId | voterId (FK) | voteValue (enum) | postID (fk)
----------------------------------------------------------------------
1 10 up 1
2 11 down 1
3 11 up 10
tblContent
[PK] unique Id | postTitle | postBody | postAuthor(FK) |
------------------------------------------------------------------
1 foo foofoo 12
10 bar barbar 10
11 foobar foofoobarbar 10
当我调查下面详述的查询时,我希望我会得到这样的结果:
uniqueId |userName | pollDate | postTitle |postBody | upVotes| downVotes
--------------------------------------------------------------------------
1 bob 1/1/11 foo foofoo 1 1
10 john 1/2/11 bar barbar 1 null
11 john 1/3/11 foofoo foofoobar.. null null
不幸的是,我实际上得到了这样的结果:
uniqueId |userName | pollDate | postTitle |postBody | upVotes| downVotes
--------------------------------------------------------------------------
1 bob 1/1/11 foo foofoo 2 1
10 john 1/2/11 bar barbar null null
11 john 1/3/11 foofoo foofoobar.. null null
这是我的SQL语句:
SELECT
tblContent.uniqueID,
tblUsers.userName,
tblContent.postDate,
tblContent.postTitle,
tblContent.postBody,
votes.upVotes,
votes.downVotes
FROM
tblContent
LEFT JOIN
(
SELECT
postId,
SUM(CASE WHEN tblVotes.voteType = 'up' THEN 1 ELSE 0 END) as upVotes,
SUM(CASE WHEN tblVotes.voteType = 'down' THEN 1 ELSE 0 END) as downVotes
FROM
tblVotes, tblContent
WHERE
tblContent.uniqueId = tblVotes.postId
) votes
ON tblContent.uniqueId = votes.postId
LEFT JOIN
tblUsers
ON tblUsers.userId = tblContent.postAuthor
WHERE
postApproved = true
ORDER BY
postDate DESC
解决方法:
使用:
SELECT p.title,
SUM(CASE WHEN v.votevalue = 'yes' THEN 1 ELSE 0 END) AS yesCount,
SUM(CASE WHEN v.votevalue = 'no' THEN 1 ELSE 0 END) AS noCount
FROM POLLS p
LEFT JOIN VOTES v ON v.pollid = p.uniqueid
GROUP BY p.title
内容总结
以上是互联网集市为您收集整理的mysql – 数据库查询计数所有是/否投票和它们所属的db记录?全部内容,希望文章能够帮你解决mysql – 数据库查询计数所有是/否投票和它们所属的db记录?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。