簡體   English   中英

如何根據SQL中的條件從多表檢索數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM