我有一个将记录插入到两个表中的系统(Oracle db,但是我猜这是一个常见的SQL问题):
Person表和Person_Record表(一对一关系)
Person表具有插入日期,这在以后很重要。
要查询的是:两个表之间的联接,但仅提供给定人员的最新数据。例如:
Person Table
ID| Name | Date
--------------------------
1 | A | 2012-05-01
2 | A | 2012-05-02
3 | B | 2012-05-04
Person Record Table
ID| Person_Id | Data
--------------------------
1 | 1 | my data 1
2 | 2 | my data 2
3 | 3 | my data 3
如果我这样做:
SELECT pr.record_id,p.person_name,FROM PERSON p
INNER JOIN PERSON_RECORD pr
ON (p.person_id = pr.person_id)
我将为名称为“ A”的人返回2行,为“ B”返回1条记录,但我不在乎人为“ A”的第一行(从2012-05-01开始) 。我尝试使用distinct来消除重复(在名称上),但是我需要保证我要获取该特定名称的最新日期。感觉我缺少明显的东西,但我无法点击它。