查询仅列出用户的最新记录

Posted

技术标签:

【中文标题】查询仅列出用户的最新记录【英文标题】:query to list only latest record of users 【发布时间】:2018-05-01 08:43:11 【问题描述】:

我有一个包含 2 组表的数据库,即用户和记录。所以我想列出某个组中每个用户的最新记录,但结果是显示我刚刚的用户的最新记录和第一条记录更新记录“27/4/300”和“4/5/2108”。日期属性“tarikh”在记录表中,而 users_id 在用户表中。有人知道更好的查询以获得结果我要吗?

$sql =   "SELECT * from Users, Record 
          WHERE Users.users_id = Record.users_id
          AND Users.group_id='$users_group'
          AND Record.tarikh IN (SELECT max(Record.tarikh) FROM Record
          GROUP BY users_id)";

我正在使用 sql server management studio 17

【问题讨论】:

select *group by 的使用表明此查询将在 SQL Server 中生成语法错误。 【参考方案1】:

试试这个。

$sql =   "SELECT * from Users, Record 
          WHERE Users.users_id = Record.users_id
          AND Users.group_id='$users_group'
          AND Record.tarikh = (SELECT max(Record_nested.tarikh) FROM Record as Record_nested 
                                where Record_nested.users_id = Record.users_id)";

【讨论】:

以上是关于查询仅列出用户的最新记录的主要内容,如果未能解决你的问题,请参考以下文章

查询表中的所有数据,仅连接联结表中的最新记录

如何仅返回日期字段上的最新记录,分为两部分

根据日期仅选择每条记录的最新版本 | MS Access [重复]

SQL 查询以获取该用户的最新记录

Oracle 仅列出更改的记录

MSSQL分组取后每一组的最新一条记录