查询以找出用户在使用MySQL的Q& A网站中的第一个答案的数量

时间:2010-11-15 02:34:52

标签: mysql

我在为此编写查询时遇到问题。我有一个q& a网站,我想找出用户的第一个答案的数量 - 对于用户回答的所有问题,哪个答案是特定问题的第一个答案。

我有两张桌子 -

  • 问题 - id,问题
  • answers - id,question_id,answering_userid,date

我把这分为两步

  1. 找出用户的答案
    • SELECT id FROM answers WHERE answering_userid =“ABC”
  2. 找出他们是否是第一个
    • ?????这是我遇到问题的地方。我认为它将使用MIN(日期)。
  3. 有人可以帮我实现吗?

    此致

2 个答案:

答案 0 :(得分:1)

你可能想要这样的东西:


select a.id, a.answering_userid
from answers a
inner join (
   select answering_userid, question_id, min(date) as mindate
   from answers
   group by answering_userid, question_id
) first on a.question_id = first.question_id 
    and a.date = first.mindate
    and a.answering_userid = first.answering_userid

请注意,如果您在同一时刻有2个答案,则会返回dupes。 此外,这是完全未经测试的。

答案 1 :(得分:1)

在另一位用户codefly的帮助下,我得到了我正在寻找的答案。

select a.id, a.answering_userid
from answers a
inner join (
   select answering_userid, question_id, min(date) as mindate
   from answers
   group by question_id
) first on a.question_id = first.question_id 
    and a.date = first.mindate
    and a.answering_userid = first.answering_userid
where a.answering_userid = "ABC"