我在尝试编写SQL语句以查找ID负责的所有事件,然后列出与该事件相关的所有描述时遇到问题。

Person_tbl
PersonID (PK INT)
Name (Varchar eg. "John Smith")

Event_tbl
EventID (PK INT)
SUPV_on_DutyID (FK to PersondID)
Event_Type (VarChar)

Details_Event_tbl
EventID (FK)
DetailsID (FK)

Details_Descrip_tbl
DetailsID (PK INT)
Details_Desc (VarChar)


使用我的语句,我得到一个错误,我返回了太多行...因为在这种情况下,Supv可以具有许多事件,而事件可以具有许多细节。

我需要回答“列出“ Jphn Smith”负责的所有事件和事件详细信息”。

任何帮助,将不胜感激

最佳答案

作为连接操作的示例:

 SELECT p.personid
      , p.name
      , e.eventid
      , e.event_type
      , d.details_desc
   FROM `Person_tbl` p
   JOIN `Event_tbl` e
     ON e.supv_on_dutyid = p.personid
   LEFT
   JOIN `Details_Event_tbl` j
     ON j.eventid = e.eventid
   LEFT
   JOIN `Details_Descrip_tbl` d
     ON d.detailsid = j.detailsid
  WHERE p.personid = ?
  ORDER BY e.eventid, d.detailsid

关于mysql - 如何处理提供多行结果的子查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40454124/

10-11 08:59