查找表SQL上的最后一个寄存器

时间:2013-04-24 18:54:39

标签: sql function field

我有这个:

客户

CLI_ID   STUDENT
   1     name1
   2     name2
   3     name3

大学

UNIV_ID   CLI_ID    NAME
1...........1      harvard (2012)
2...........1      oxford(2013)
3...........2      yale

我需要:

STUDENT    UNIVERSITY
name1      oxford
name2      yale

但我明白了:

STUDENT    UNIVERSITY
name2      yale

我只获得最高的数字。并非所有身份最高的学生(上一所大学)

我alredy试过这个:

**SELECT** C.cli_id, UNIV.UNIV_ID **FROM** cliente C

**INNER JOIN** UNIVERSITY UNIV **ON** C.Cli_id = UNIV.cli_id

**WHERE** UNIV_ID = ( **SELECT MAX** (UNIV_ID) **FROM** UNIVERSITY )

感谢

1 个答案:

答案 0 :(得分:0)

您需要在where子句中使用相关子查询,以获得每个学生的最大值:

SELECT C.cli_id, UNIV.UNIV_ID 
FROM cliente C INNER JOIN
     UNIVERSITY UNIV
     ON C.Cli_id = UNIV.cli_id
WHERE UNIV_ID = ( SELECT MAX(UNIV_ID) FROM UNIVERSITY u2 where u2.cli_id = c.cli_id)

你获得了所有学生的最高分,你只想要每个学生的最高分数。