我在尝试编写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“负责的事件的所有事件和细节。”
任何帮助将不胜感激
答案 0 :(得分:1)
作为联接操作的示例:
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