2017-04-17 33 views
-1

我有一個加入5個表的主要問題,因爲每個表只有1列共同只有1個其他表。如何在MySQL中加入任意數量的表?

這裏是我的表和列在每個表:

TABLE (COLUMNS) 

person (person_id, first_name, last name) 

building (building_id, building_name) 

room (room_id, room_number, building_id, capacity) 

meeting (meeting_id, room_id, meeting_start, meeting_end) 

person_meeting (person_id, meeting_id) 

OK,現在這裏是什麼,我試圖做(從家庭作業粘貼):

構造SQL語句找到person_id#1必須參加的所有會議。顯示以下欄:

  • 人的名字
  • 人的姓氏
  • 建築物名稱
  • 房間號
  • 會議開始的日期和時間
  • 會議結束日期和時間

現在我知道如何加入2個表格,但我不知道如何從5個不同的表格中獲取信息。

我試圖查找如何做到這一點,它只是說要做一個聯盟命令,而我只是學習,還沒有覆蓋。

+1

發佈您嘗試過的樣品數據,預期結果和查詢並面臨問題。 – GurV

+1

你不需要聯合,你需要聯合表格。你試過什麼了?從兩個表開始,然後添加另一個表,直到您全部加入。人們不會爲你做這項工作,但會幫助你。 – Niagaradad

+0

我試圖從去JOIN加入,一個接一個,這樣的:SELECT person.first_name,person.last_name FROM人 JOIN person_meeting ON person.person_id = person_meeting.person_id WHERE person.person_id = 1;然後,將person_meeting表加入會議桌,然後將會議桌加入房間桌,然後將房間桌加入建築桌....沒有任何工作。 –

回答

0

由於UNION用於將多個SELECT語句的結果合併到一個結果集中,所以在此場景中不需要它。你必須根據他們的ID逐個加入所有的表格。

SELECT P.First_Name, P.Last_Name, B.Building_name, R.Room_Number, 
M.Meeting_Start, M.Meeting_End FROM Person P 
JOIN Person_Meeting PM ON P.Person_Id = PM.Person_Id 
JOIN Meeting M ON PM.Meeting_Id = M.Meeting_Id 
JOIN Room R ON M.Room_Id = R.Room_Id 
JOIN Building B ON R.Building_Id = B.Building_Id 
WHERE P.Person_Id = 1 
+0

這很棒,所以我不必使用任何AND或OR命令或任何東西!非常感謝你的幫助。 –

相關問題