資料庫名稱: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'
請板上大大指點 感謝