2016-11-06 16 views
0

IDが担当するすべてのイベントを検出し、そのイベントに関連付けられているすべての説明をリストするSQL文を作成しようとする際に問題が発生しています。私の文を使用して複数の結果行を提供するサブクエリをどのように扱うのですか?

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

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 
句で使用します。あなたのクエリを表示する..それで我々はそれを評価することができます – scaisEdge

+0

'JOIN'を使用してください。明確にするために、http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ – Barmar

答えて

1

を理解されるであろう:

+0

を参照してください。 e。後でfromやjoinなどで定義します。pを宣言する必要はありませんか? e。最初にテーブル名を入力するか、最初に入力しますか? – ccices

+0

完全なテーブル名を追加して、あなたのソリューションは美しく動作します。私は使用されたエイリアスを理解していません。 – ccices

関連する問題