【发布时间】:2020-09-24 11:13:56
【问题描述】:
我需要从 3 个不同的 mysql 表中获取一些数据,如下所示。
+-----------------------------------+
| Questions |
-------------------------------------
| id: int(8) |
| -- data we don't care about here |
| question: TEXT |
+-----------------------------------+
+--------------------------+
|Answers |
+--------------------------+
| id: int(8) |
| -- other data |
| answer: TEXT |
+--------------------------+
+-----------------------------------+
|Votes |
+-----------------------------------+
| id: int(8) |
| step: tinyint(1) |
| answerId: int(8) |
+-----------------------------------+
我需要获得对每个问题的投票最多的答案以及该答案的票数。
我能想到的最好的查询是:
SELECT question, answer, count(votes.id) votesCount FROM questions INNER JOIN answers ON questions.id = answers.questionId INNER JOIN votes ON answers.id = votes.answerId;
但是这是错误的,因为它总是返回一个包含第一个问题、随机答案和总票数的结果。
【问题讨论】:
标签: mysql sql count greatest-n-per-group window-functions