我有一个表(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 ..)。没有查询导致我想要实现的目标: - /
答案 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)