我正在努力选择数据库中的数据,但我不确定如何继续。
我需要选择最新的更新
我的表格如下:
datatable: userid, userinfo, updated (timestamp);
usertable: userid, username, realname, email, userNumber, Org, SN, Dept.
每个用户的数据表中可以有多个条目。对于此查询,我只需要数据表中每个用户的最新条目:
SELECT datatable.userid,
datatable.userinfo,
datatable.updated,
usertable.username
FROM datatable
JOIN usertable ON datatable.userid = usertable.userid
WHERE (....)
答案 0 :(得分:6)
使用:
SELECT d.userid,
d.userinfo,
d.updated,
u.username
FROM datatable d
JOIN usertable u ON u.userid = d.userid
JOIN (SELECT t.userid,
MAX(t.updated) AS max_updated
FROM DATATABLE t
GROUP BY t.userid) x ON x.userid = d.userid
AND x.max_updated = d.updated
答案 1 :(得分:0)
在sql查询中有比较时间的功能。
我不确定你的时间戳是如何在db中保存的,但如果它是一个数字,只需看看MAX()函数。如果不使用sql语言中的Time或Data函数来生成整数。
对于MAX函数:http://dev.mysql.com/doc/refman/5.0/fr/example-maximum-row.html
答案 2 :(得分:0)
SELECT
datatable.userid,
datatable.userinfo,
datatable.updated,
usertable.username
FROM datatable JOIN usertable ON datatable.userid = usertable.userid
WHERE datatable.updated = (
SELECT MAX(datatable.updated)
FROM datatable
WHERE datatable.userid = usertable.userid
LIMIT 1
)
GROUP BY usertable.userid