我在为此编写查询时遇到问题。我有一个q& a网站,我想找出用户的第一个答案的数量 - 对于用户回答的所有问题,哪个答案是特定问题的第一个答案。
我有两张桌子 -
我把这分为两步
有人可以帮我实现吗?
此致
答案 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"