2013-04-24 49 views
0

我有這樣的:找到最後寄存器在表上SQL

CLIENT

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 

我只獲得最高數量。不是所有的學生與highst ID(去年大學)

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

THANKS

+0

不確定你到底在找什麼。您是否想要運行「SELECT ... WHERE」並顯示與最後修改記錄關聯的大學? – brbcoding 2013-04-24 18:57:33

+0

歡迎使用StackOverflow:如果您發佈代碼,XML或數據樣本,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼示例」按鈕(「{}」)語法突出它!這樣,你不需要任何'
'標籤或點(用於空格)! – 2013-04-24 18:59:00

+0

那麼你有什麼嘗試?你有什麼麻煩?哪種SQL方言? – DarkDust 2013-04-24 19:12:14

回答

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) 

你剛纔在所有的學生獲得最大的,你只需要爲每個學生的最大值。

+0

工作。感謝戈登 – user2313049 2013-04-24 20:42:44