0

我有这个:

客户

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

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

我已经试过这个:

**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 )

谢谢

4

1 回答 1

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)

你得到了所有学生的最大值,你只想要每个学生的最大值。

于 2013-04-24T20:33:29.133 回答