如何在MySQL中加入任意数量的表?

时间:2017-04-17 04:18:47

标签: mysql

我在连接5个表时遇到了一个主要问题,因为每个表只有1列,只有1个表。

以下是每个表格中的表格和列:

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)

好的,现在我正在尝试做的事情(从家庭作业中粘贴):

  

构造SQL语句以查找person_id#1必须参加的所有会议。显示以下列:

     
      
  • 人的名字
  •   
  • 人的姓氏
  •   
  • 建筑物名称
  •   
  • 房号
  •   
  • 会议开始日期和时间
  •   
  • 会议结束日期和时间
  •   

现在我知道如何加入2个表,但我不知道如何从5个不同的表中提取信息。

我试着查看如何做到这一点,它只是说要做一个UNION命令,我只是在学习并且还没有涵盖它。

1 个答案:

答案 0 :(得分: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