mysql 帶多個條件的查詢方式
發(fā)布日期:2022-02-11 10:48 | 文章來源:源碼之家
mysql 帶多個條件的查詢
環(huán)境:mysql 5.7
當一個where語句中同時出現(xiàn)多個and 或者or時,需要將多個OR用小括號括起來再和AND進行“與”,或者將多個AND用小括號括起來再與OR進行“或”
mysql 多對多條件查詢
兩個表 user和role 中間表是user_role

查詢用戶和角色的對應關(guān)系
select res.user_name,r.role_name from(select u.user_name,ur.role_id from user as u INNER JOIN user_role as ur where u.user_id=ur.user_id) as res INNER JOIN role as r where res.role_id=r.role_id;
mysql 查詢同一字段中同時滿足多個條件


分析:
1,先查詢出01號同學學習的課程
SELECT C FROM sc WHERE S='01'

2,查詢學習該相關(guān)課程的同學編號
SELECT S FROM sc WHERE C in (SELECT C FROM sc WHERE S='01')

可以看到,我們分別查詢了3次,所以出現(xiàn)多個結(jié)果,因為是or關(guān)系,所以每個選擇了1、2、3課程的同學都全部取出,
3,現(xiàn)在需要將出現(xiàn)次數(shù)為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表進行連表查詢,取出相關(guān)信息
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

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持本站。
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章
關(guān)注官方微信