環(huán)境:mysql 5.7
當(dāng)一個where語句中同時出現(xiàn)多個and 或者or時,需要將多個OR用小括號括起來再和AND進(jìn)行“與”,或者將多個AND用小括號括起來再與OR進(jìn)行“或”
兩個表 user和role 中間表是user_role
查詢用戶和角色的對應(yīng)關(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;
分析:
SELECT C FROM sc WHERE S='01'
SELECT S FROM sc WHERE C in (SELECT C FROM sc WHERE S='01')
可以看到,我們分別查詢了3次,所以出現(xiàn)多個結(jié)果,因?yàn)槭莖r關(guān)系,所以每個選擇了1、2、3課程的同學(xué)都全部取出,
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的同學(xué)選了與01號同學(xué)一致的課程
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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
標(biāo)簽:南充 西寧 迪慶 麗水 龍巖 徐州 自貢 無錫
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql 帶多個條件的查詢方式》,本文關(guān)鍵詞 mysql,帶,多個,條件,的,查詢,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。