2017-09-20 7 views
0

複数のテーブル(tbldept、tblcourse、tblstud、tblviolation)があり、特定の値を抽出したい。以下の表は、複数テーブルの結合を選択する

tbldept 
id | dept 
1 | deptA 
2 | deptB 

tbldepttblviolation

に外部キーを持つ tblstud

tblstud 
id | courseId | name 
1 | 1  | studA 
2 | 2  | studB 
3 | 1  | studC 

tblstudに外部キーを持つtblcourse

tblcourse 
id | deptId | course 
1 | 2  | courseA 
2 | 1  | courseB 
3 | 1  | courseC 

tblcourseの外部キーを持っているように私のテーブルで同じです*

dept | studId | name | violationName 
    2 | 1 | studA | violationC 
    2 | 2 | studB | violationB 
    1 | 3 | studC | violationA 
    1 | 3 | studC | violationC 

私は、各studIdためtblviolationのすべての行を取得したい:0

tblviolation 
id | studId | violationName 
1 | 3 | violationA 
2 | 2 | violationB 
3 | 1 | violationC 
4 | 3 | violationC 

*私は何を取得したいことは、このようになります。 私はあなたが私が説明しようとしていることを理解してくれることを願っています。 =)ありがとうございました。

+0

FWIW、私は絶対に怒っているすべての前に 'tbl'を貼り付ける慣習を見つける。 'departments'、 'students'、 'courses'の何が問題なのですか? – Strawberry

答えて

1

inner joinが必要です。これを試して。

select d.dept,s.studid,s.name,v.violationname 
from tbldept d 
inner join tblcourse c 
on d.id=c.deptid 
inner join tblstud s 
on c.id=s.courseid 
inner join tblviolation v 
on s.id=v.studid 
+0

大丈夫です。やってみます。 – Marksmanship

+0

それを試して、それは動作します。 – Marksmanship

関連する問題