SQL:从另一个表获取用户的信息及其最新日期记录

甲硅烷基

我有2张桌子

患者:p_id,姓名,年龄和医疗记录:id,p_id,日期

我需要从“患者”中选择所有内容,以及他们最新的“医疗记录”的日期。理想的结果将是

编号 名称 年龄 日期(最新)
1个 约翰 20 2020/12/20
2 英雄 18 2020/12/18

我目前停留在

SELECT *
  FROM Patient
  JOIN (SELECT
            MedicalRecord.p_id,
            MedicalRecord.date
        FROM MedicalRecord) x ON Patient.p_id = x.p_id

这将为我提供以下结果,但是我只需要向每位患者显示一次他们的MedicalHistory的最新日期。

编号 名称 年龄 p_id 日期(最新)
1个 约翰 20 1个 2020/12/20
1个 约翰 20 1个 2020/12/15
2 英雄 18 2 2020/12/18

谢谢。

蒂姆·比格莱森(Tim Biegeleisen)

传统的方法是使用联接:

SELECT p.*, mr.*
FROM Patient p
LEFT JOIN
(
    SELECT mr1.*
    FROM MedicalRecord mr1
    INNER JOIN
    (
        SELECT p_id, MAX(date) AS max_date
        FROM MedicalRecord
        GROUP BY p_id
    ) mr2
        ON mr2.p_id = mr1.p_id AND
           mr2.max_date = mr1.date
) mr
    ON mr.p_id = p.id

借助解析功能,我们可以ROW_NUMBER在此处使用一些简洁的代码:

WITH cte AS (
    SELECT p.*, mr.*, ROW_NUMBER() OVER (PARTITION BY p.id ORDER BY mr.date DESC) rn
    FROM Patient p
    LEFT JOIN MedicalRecord mr ON mr.p_id = p.id
)

SELECT *
FROM cte
WHERE rn = 1;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从另一个表中获取最新日期

来自分类Dev

雄辩的-获取最新日期并将结果插入到另一个表中

来自分类Dev

MS SQL:如何为多个用户获取另一个日期(付款日期)之前的最新日期(账单日期)?

来自分类Dev

如何根据另一个表获取用户信息

来自分类Dev

如何通过sql中的最新日期获取用户名的最新记录

来自分类Dev

从另一个日期值更新日期以获取特定记录

来自分类Dev

如何从另一个域获取用户详细信息

来自分类Dev

从 3 个表中选择数据,按最新日期值和另一个值分组

来自分类Dev

我如何获取用户查看数据并将其插入另一个表

来自分类Dev

如何获取表中最新日期和 Oracle SQL 中上一个日期值的差异?

来自分类Dev

根据最新记录更新另一个表

来自分类Dev

按日期获取最新行,但按另一个表中的列分组

来自分类Dev

通过另一个表CakePHP的author_id从另一个表获取用户名

来自分类Dev

SQL维护另一个表中相关记录的最新计数

来自分类Dev

从CodeIgniter中的另一个表中获取用户名和用户ID

来自分类Dev

使用dplyr从每个组的另一列中确定另一个日期之前的最新日期?

来自分类Dev

如何从另一个表中的列日期之间获取一个表中的所有记录

来自分类Dev

我从另一个表的时间戳中获取最新行的SQL查询

来自分类Dev

使用JPA从另一个表获取记录

来自分类Dev

从另一个表获取每个记录的总数

来自分类Dev

使用JPA从另一个表获取记录

来自分类Dev

如何修改此SQL查询以获取位于另一个表中的信息?

来自分类Dev

我如何获取另一个表中的记录(SQL)

来自分类Dev

查找另一个表引用的 SQL 记录

来自分类Dev

Oracle SQL从联接到另一个表时获取最大日期值

来自分类Dev

android从活动获取用户输入到另一个线程

来自分类Dev

检查用户和另一个用户是否彼此喜欢,并获取喜欢的用户的信息

来自分类Dev

如何基于另一个表中的两个日期字段获取一个表中的记录数

来自分类Dev

如何根据来自另一个表的信息在表中插入新记录?

Related 相关文章

  1. 1

    从另一个表中获取最新日期

  2. 2

    雄辩的-获取最新日期并将结果插入到另一个表中

  3. 3

    MS SQL:如何为多个用户获取另一个日期(付款日期)之前的最新日期(账单日期)?

  4. 4

    如何根据另一个表获取用户信息

  5. 5

    如何通过sql中的最新日期获取用户名的最新记录

  6. 6

    从另一个日期值更新日期以获取特定记录

  7. 7

    如何从另一个域获取用户详细信息

  8. 8

    从 3 个表中选择数据,按最新日期值和另一个值分组

  9. 9

    我如何获取用户查看数据并将其插入另一个表

  10. 10

    如何获取表中最新日期和 Oracle SQL 中上一个日期值的差异?

  11. 11

    根据最新记录更新另一个表

  12. 12

    按日期获取最新行,但按另一个表中的列分组

  13. 13

    通过另一个表CakePHP的author_id从另一个表获取用户名

  14. 14

    SQL维护另一个表中相关记录的最新计数

  15. 15

    从CodeIgniter中的另一个表中获取用户名和用户ID

  16. 16

    使用dplyr从每个组的另一列中确定另一个日期之前的最新日期?

  17. 17

    如何从另一个表中的列日期之间获取一个表中的所有记录

  18. 18

    我从另一个表的时间戳中获取最新行的SQL查询

  19. 19

    使用JPA从另一个表获取记录

  20. 20

    从另一个表获取每个记录的总数

  21. 21

    使用JPA从另一个表获取记录

  22. 22

    如何修改此SQL查询以获取位于另一个表中的信息?

  23. 23

    我如何获取另一个表中的记录(SQL)

  24. 24

    查找另一个表引用的 SQL 记录

  25. 25

    Oracle SQL从联接到另一个表时获取最大日期值

  26. 26

    android从活动获取用户输入到另一个线程

  27. 27

    检查用户和另一个用户是否彼此喜欢,并获取喜欢的用户的信息

  28. 28

    如何基于另一个表中的两个日期字段获取一个表中的记录数

  29. 29

    如何根据来自另一个表的信息在表中插入新记录?

热门标签

归档