[英]How to retrieve data form multi tables according to condition in SQL
我的數據庫中有這些表
courses degree_plan
-------------------- ------------------------
course course_no major course_no
-------------------- ------------------------
CHEM101 1 COE 1
Math101 2 SWE 1
SWE 2
student equal
------------------------------- ----------------------------------------
course_no ID grade course_no course equivalent ID
------------------------------- ----------------------------------------
1 5544 A 1 CHEM101 chemistry 1 5544
1 5533 A 2 Math101 mathematics 1 5533
2 5533 B
我寫了這個查詢
SELECT * FROM courses LEFT JOIN equal ON equal.course_no=courses.course_no
LEFT JOIN degree_plan ON degree_plan.course_no =courses.course_no
LEFT JOIN student ON courses.course_no= student.course_no
AND student.id=5533 WHERE degree_plan.major='SWE';
當我運行此查詢時,它檢索相等表中的所有行,但我不希望這樣做,因為我想根據查詢中寫入的學生的ID從相等表中檢索。
如何在不刪除左聯接的情況下根據ID從相等的表中檢索查詢?
我認為對於學生來說,您需要左聯接和(條件)
SELECT * FROM courses LEFT JOIN equal ON equal.course_no=courses.course_no
LEFT JOIN degree_plan ON degree_plan.course_no =courses.course_no
LEFT JOIN student ON ( courses.course_no= student.course_no
AND student.id=5533 )
WHERE degree_plan.major='SWE';
SELECT * FROM courses LEFT JOIN equal ON equal.course_no=courses.course_no
LEFT JOIN degree_plan ON degree_plan.course_no =courses.course_no
LEFT JOIN student ON courses.course_no= student.course_no
WHERE degree_plan.major='SWE' AND equal.id=5533;
您只需要在WHERE
子句中移動AND equal.id=5533
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.