不能写我想要的mysql查询

时间:2010-08-23 20:22:59

标签: sql mysql greatest-n-per-group

我有一个表(Counts),有很多这样的条目:

ID | userid | count | entrydate

其中ID是autoinc PK,userid是指我的Users表,count是随机整数,entrydate是unix时间戳。

我还有一个名为Listmembers的表:

listid | userid

其中两个字段一起是PK,listid是指一些列表信息。

我想编写一个查询,返回特定列表中每个用户最近输入的计数值。

我尝试使用GROUP BY进行变换(仅返回每个userid的第一个输入数据项,而不是最新的),使用ORDER BY(但这会返回相关用户的所有计数),并在我的查询中选择用户(其中​​userid) IN(..))和查询外部(加入listmembers on ..)。没有查询导致我想要实现的目标: - /

3 个答案:

答案 0 :(得分:3)

select c.userid, c.count  from counts C
inner join (select userid, max(entrydate)  
            from Counts group by userid) g 
   on c.userid =g.userid and c.entrydate = g.entrydate
inner join Listmembers L on l.userid = c.userid
where l.listid = @desiredList 

(注意:我从未真正使用过mysql。那应该是T-Sql语法,但它应该足够标准来处理SQL)

答案 1 :(得分:0)

使用max()执行此操作:

max(entryDate)

答案 2 :(得分:-1)

SELECT c.count FROM Counts as c, Listmembers as l
 WHERE l.userid = c.userid 
        AND l.listid = 'specific_value'
        AND c.entrydate = MAX(c.entrydate)