2015-11-14 64 views
0

我有以下3個表。通過加入查詢

學生(snum:integer,sname:string,major:string,level:string,age:integer)。

類(:字符串,meets_at:時間,房間:字符串)

已登記(SNUM:整數,CNAME:字符串)

我想要得到的數學生註冊的類和學生註冊的最早類的名稱。我如何在單個SQL查詢中執行此操作?

SELECT S.sname, COUNT(*), MIN(C.meets_at) 
FROM Student S, Class C, Enrolled E 
WHERE S.snum=E.snum and C.name=E.cname 
GROUP BY S.snum 

這是我到目前爲止,但我不知道如何獲得類的名稱。類

+0

告訴我們你試過了什麼,爲什麼 它不符合你的需求。這表明你已經花時間 試圖幫助自己,它使我們避免重申明顯的答案, ,最重要的是它可以幫助您獲得更具體和相關的答案! 另請參閱[問]。 – Morpheus

+0

好的,我已經添加了我迄今爲止所嘗試的內容。 – dissem

+0

你有圖嗎? –

回答

0

計數的學生,SNUM 1中就讀:

select count(*) from enrolled where snum = 1; 
與SNUM 1學生(SQL是有些特定數據庫

最早類 - 一個;;後端不使用相同的功能,或服用結果集,即:帶有MS SQL服務器)

select top 1 cname from enrolled e 
    inner join class c on c.name = e.cname 
    where e.snum = 1 and c.meets_at >= cast(getdate() as time) 
    order by meets_at