我刚问了这个问题Find the oldest record in a join between two tables并对我的问题得到了很好的答案。问题是,这不是我想要的(我的错)
考虑以下MySQL表
Table: Questions
ID
Table: Results
ID
Created - When this record was added.
Q_ID - A FK to the Question table
示例数据
Table: Questions
ID
----
1
8
15
55
Table: Results
ID | Created | Q_ID
--------------------
1 | 12:02 | 1
2 | 12:03 | 15
3 | 12:04 | 8
使用以下查询,它将返回没有与之关联的结果的所有记录,如果所有记录都有结果,则它将返回具有最早结果的问题。
SELECT *
FROM
questions
LEFT JOIN results
ON results.q_id = questions.id
ORDER BY
ISNULL(results.id) DESC, results.created ASC
LIMIT 1
我实际上寻找的是任何尚未回答的问题,然后将问题排序为我们已经回答了多少次。至少回答的问题应该在最顶层。
答案 0 :(得分:2)
这会给你每个问题,以及与之相关的结果数量(即使没有结果)。他们将以最低的数量订购:
SELECT Questions.ID, COUNT(Results.ID) Result_Count
FROM
Questions
LEFT JOIN Results ON Questions.ID = Results.Q_ID
GROUP BY Questions.ID
ORDER BY COUNT(Results.ID)
这是你的想法吗?