mysql 帶多個條件的查詢方式
mysql 帶多個條件的查詢
環境:mysql 5.7
當一個where語句中同時出現多個and 或者or時,需要將多個OR用小括號括起來再和AND進行“與”,或者將多個AND用小括號括起來再與OR進行“或”
mysql 多對多條件查詢
兩個表 user和role 中間表是user_role
查詢用戶和角色的對應關系
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,查詢學習該相關課程的同學編號
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
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- MySQL分類排名和分組TOP N實例詳解
- 一文弄懂MySQL索引創建原則
- mysql高效查詢left join和group by(加索引)
- MySQL索引優化之適合構建索引的幾種情況詳解
- MySql各種查詢方式詳解