1

请任何人告诉我如何针对每个外键 id 返回具有最大主键 id 的所有行。

例如,如果我有申请人和备注表。申请人表以申请人 ID 作为主键,备注表以 NotesId 作为主键。申请人Id 是Notes 表中的外键,具有一对多关系。

在这里,我想从 Notes 表中获取针对每个唯一申请人 ID 的最大 NotesId 结果。任何人的帮助将不胜感激。

4

3 回答 3

0

试试这个:

SELECT ApplicantId, MAX(NotesId)
FROM Notes
GROUP BY ApplicantId;

要获取其余记录,您可以执行以下操作:

SELECT n.*
FROM notes n
INNER JOIN (
  SELECT max(notesId) AS maxid
  FROM notes
  GROUP BY applicantId
  ) n2 ON n.NotesId = n2.maxid

sqlfiddle demo

于 2013-10-25T13:37:19.667 回答
0
SELECT applicantId, max(notesId) 
from Notes
group by applicantId
于 2013-10-25T13:37:28.050 回答
0

您可以使用 group by 或 over 子句,如下所示

select 
  applicantid,
  max(notesid) over (partition by applicantid)
from table

或这个

select 
  applicantid,
  max(notesid)
from table
group by applicantid
于 2013-10-25T13:38:35.623 回答