sql - 为历史表的每个外键获取最后一个条目的正确方法是什么?

标签 sql database oracle

我一直想知道在某个外键的历史表中找到最后一个条目的正确方法是什么?

例子:

我们假设我们有一个这样的表:

tHistory(ID | FK_User | 状态 | 时间戳)

在 Oracle 中读取每个 FK_User ID 的最新条目的正确方法是什么?我总是为此使用子选择,但它对我来说不合适......还有其他方法可以做到这一点吗?

最佳答案

另一种方法是使用相关子查询来确定最后日期...

SELECT
  *
FROM
  tHistory
WHERE
  timestamp = (
    SELECT
      MAX(timestamp)
    FROM
      tHistory latest
    WHERE
      FK_User = tHistory.FK_User
  )

关于sql - 为历史表的每个外键获取最后一个条目的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5393440/

相关文章:

php - 将多个 dbms 查询响应转换为相同类型的变量 (PHP)

oracle - 如果值是由触发器生成的,该如何注释Id列?

oracle - ORA-01403 : no data found for Select into

mysql - 结合 3 个表(Union 或 JOIN)的结果获得正确的产品 bij

database - 在 SchemaSpy 中使用 SSL 连接逆向工程 PostgreSQL 数据库

php - 尽管没有重复项,但在 mySQL/phpMyAdmin 中收到 #1062 重复错误

database - 客户端应用程序立即响应数据库更新的最佳方式是什么?

sql - 如何在 SQL SELECT 语句中使用包常量?

sql - 多个表的 View 。需要删除1个表定义的 "doubles"

sql - 来自表的多级聚合