2016-04-03 17 views
2

あなたは私の最後の希望です。私は一日中過ごしましたが、このクエリの作成方法は決まっていません。複雑な内部結合SQL

これは、すべてのストレージが

すべての名簿が主任と労働者から構成されて1人の名簿を持って

enter image description here

私の現在のデータベースダイアグラムです。それらに関する情報はスタッフテーブルにあります。

私は何をしようとしていますか?すべてのストレージ(正方形のアドレス)、worker_name、worker_surname、chief_name、chief_surnameを取得します。私はこれまで

select storage_address, 
storage_square, 
stuffs.stuff_name as chiefSurname, 
stuffs.stuff_surname as chiefName from storages 
inner join storageRoster on storageRoster.storageRoster_id=storages.storage_roster_id 
inner join Chiefs on storageRoster.chief_id = Chiefs.chief_id 
inner join stuffs on Chiefs.chief_stuff_id = stuffs.stuff_id 

を持っている。しかし、このクエリでは、私が唯一、すべてのストレージ上の首長を得ることができますどのような

。助けてください。私は絶望的です。

+0

インナーのみ、あなたは1を維持することによって、デバッグを試すことができて、データ、そのハードトンの助けを借りて、一致して戻ります参加一度に参加してください – TheGameiswar

+0

あなたはあなたの質問に労働者と別のスタッフ(労働者のデータを取得するため)に加わる必要があります。 – RubioRic

答えて

3

あなたがチーフに一度労働者のためにと1回、2回スタッフテーブルに参加する必要があります。

select storage_address, 
storage_square, 
cs.stuff_name as chiefSurname, 
cs.stuff_surname as chiefName, 
ws.stuff_name as workerSurname, 
ws.stuff_surname as workerName 
from storages 
inner join storageRoster on storageRoster.storageRoster_id=storages.storage_roster_id 
inner join Chiefs on storageRoster.chief_id = Chiefs.chief_id 
inner join stuffs cs on Chiefs.chief_stuff_id = cs.stuff_id 
inner join Workers on storageRoster.worker_id = Workers.chief_id 
inner join ws cs on Workers.worker_stuff_id = ws.stuff_id 
+0

喜んで助けてください:-) –

関連する問題