2012-06-17 226 views
-1

我在SQL初學者,可以請你幫我寫一個查詢:SQL連接查詢

  • 找到誰也是一門課程的參與者講師的名字
  • 找到4個療程最參與者

的表是:

- Lecturer [LecturerID (PK), name] 
- Course [CourseId (PK), LecturerID, name] 
- Participant [ParticipantID (PK), CourseID(PK)] 

謝謝!

+4

聽起來像功課。你有什麼嘗試? –

+0

嗯,我想了解如何加入等工作。我想編寫一個簡單的系統來學習SQL,並且我已經有了這個問題的堆棧... – Devel

+0

這些不是我選擇開始學習連接的兩個查詢。更像是兩個看看你是否學過它們。我也確定,只是發送給你的SQL不會教你任何東西。 –

回答

2

如果您想了解連接如何工作,那麼對我們來說幫助您自己創建SQL將會更加有益。爲聯接的基本格式是這樣的:

SELECT * 
FROM table1 
JOIN table2 ON table1.joinID = table2.joinID 

我會在3個步驟處理這個:

  1. 寫一個基本的SELECT語句將返回連接表數據
  2. 修改SQL只顯示「也是參加一門課程的講師的名字」
  3. 從步驟1的基本SELECT語句開始,修改SQL以僅顯示「參加人數最多的4門課程」

這些將最終成爲2個不同的查詢。

如果你想從它開始,並且卡住了,我們可以幫助你,但如果我們只是給了你SQL,它不會幫助你學習它。嘗試寫一點它,併發布你有什麼時,你卡住了。

+0

要做第一項任務,是否正確?從講師 選擇名稱加入上Course.LecturerID = Lecturer.LecturerID 課程Participant.CourseID = Course.CourseID 其中Lecturer.LecturerID = Participant.ParticipantID – Devel

+1

這是一個良好的開端加入參與者。你有可以玩的工作數據庫嗎?我正在創建一個SQLFiddle,你可以嘗試測試你的查詢。另外,我猜這裏還有一個'學生'表?現在,我們必須假設'PARTICIPANT'表包含對第四個表格的引用。 – Seth

+1

我必須去一點點,但很快就會回來看看你在做什麼。這裏是一個SQLFiddle,您可以在其中測試您的查詢,並開始玩弄編輯它: http://sqlfiddle.com/#!3/59788/1 – Seth

2
select L.name from lecture L join participant P on L.id=P.id 

select C.cid from course C join participant P 
ORDER BY P.cid DESC 
LIMIT 4; 

希望它可以幫助你

+0

不應該有計數聲明嗎? – Devel

+0

對不起,應該算count(p.cid)DESC LIMIT 4.Thanks – vijay