mysql 帶多個條件的查詢方式
mysql 帶多個條件的查詢
環(huán)境:mysql 5.7
當一個where語句中同時出現(xiàn)多個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次,所以出現(xiàn)多個結(jié)果,因為是or關系,所以每個選擇了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表進行連表查詢,取出相關信息
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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
mysql利用group_concat()合并多行數(shù)據(jù)到一行
把查詢name字段得到的多行記錄進行合并,可以通過程序?qū)崿F(xiàn),但也可直接在sql層完成,需要的朋友可以參考下2014-07-07mysql存儲中使用while批量插入數(shù)據(jù)(批量提交和單個提交的區(qū)別)
這篇文章主要介紹了mysql存儲中使用while批量插入數(shù)據(jù)(批量提交和單個提交的性能差異),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08MySQL的MaxIdleConns不合理,會變成短連接的原因
這篇文章主要介紹了MySQL的MaxIdleConns不合理,會變成短連接的原因,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下2021-01-01mysql數(shù)據(jù)庫備份命令分享(mysql壓縮數(shù)據(jù)庫備份)
這篇文章主要介紹了mysql數(shù)據(jù)庫備份常用語句,包括數(shù)據(jù)庫壓縮備份、備份多個MySQL數(shù)據(jù)庫、備份多個MySQL數(shù)據(jù)庫、將數(shù)據(jù)庫轉(zhuǎn)移到新服務器等語句2014-01-01