MySQL选择多个表上的连接

时间:2017-09-20 02:47:39

标签: mysql

我有多个表(tbldept,tblcourse,tblstud,tblviolation),我想提取特定的值。下表与我的表格相同

tbldept
id | dept
1  | deptA
2  | deptB

tbldepttblcourse

上有外键
tblcourse
id | deptId | course
1  |    2     | courseA
2  |    1     | courseB
3  |    1     | courseC

tblcoursetblstud

上有外键
tblstud
id | courseId | name 
1  |   1      | studA
2  |   2      | studB
3  |   1      | studC

tblstudtblviolation

上有外键
tblviolation
id | studId | violationName
1  |   3    |  violationA
2  |   2    |  violationB
3  |   1    |  violationC
4  |   3    |  violationC

*我想要的是这样的:*

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

我想为每个tblviolation获取studId的所有行。 我希望你们明白我要解释的是什么。 =)谢谢。

1 个答案:

答案 0 :(得分: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