我在尝试编写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/