[SQL ] 查询多表格的SQL

楼主: joycegirl (じゅんさん)   2018-01-21 19:02:59
数据库名称:MYSQL
数据库版本:5.6
内容/问题描述:
如果情境是这样
有班级表A 社会学院表B 商学院表C 工学院表D
我需要先查询班级表A,查出没all pass的同学 student_id
然后用student_id 去 B、C、D三个表 查出分别不及格的学科
但是B C D中student_id非主键,所以有可能 student_id假设为 12345
可能在B表格中会有
student_id | 学科
12345 | 历史探讨
12345 | 地理分析
12345 | 社会学
这样的情境下,SQL该如何下会比较好?
目前我的作法是
先select出班级表A中没all pass的同学(student_id)
然后用foreach去执行 查询B、C、D的资料后(分别查询)
然后串在一起
另外有个想法是用left join 去串
select A.xxx,B.xxxx,C.xxxx,D.xxx from A left join B on A.student_id = B.student_id
left join C on A.student_id = C.student_id
left join D on A.student_id = D.student_id WHERE A.student_id = '12345'
请板上大大指点 感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com