MySQL 查詢同一字段中同時滿足多個條件


 

分析:

1,先查詢出01號同學學習的課程

SELECT C FROM sc WHERE S='01'

 2,查詢學習該相關課程的同學編號

SELECT S FROM sc WHERE C in 
(SELECT C FROM sc WHERE S='01')

 可以看到,我們分別查詢了3次,所以出現多個結果,因為是or關系,所以每個選擇了1、2、3課程的同學都全部取出,

3,現在需要將出現次數為3的編號取出

SELECT S FROM sc WHERE C in 
(SELECT C FROM sc WHERE S='01') 
GROUP BY S HAVING COUNT(S) =3

 看到編號為1、2、3、4的同學選了與01號同學一致的課程

4,與student表進行連表查詢,取出相關信息

SELECT a.* FROM
student a LEFT JOIN sc b
ON a.S = b.S WHERE b.S in (
SELECT S FROM sc WHERE C in 
(SELECT C FROM sc WHERE S='01') 
GROUP BY S HAVING COUNT(S) =3)
GROUP BY a.S 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM