mysql 带多个条件的查询方式
更新时间:2021年06月04日 11:14:01 作者:遇见一只小脑斧
这篇文章主要介绍了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
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
mysql利用group_concat()合并多行数据到一行
把查询name字段得到的多行记录进行合并,可以通过程序实现,但也可直接在sql层完成,需要的朋友可以参考下2014-07-07mysql存储中使用while批量插入数据(批量提交和单个提交的区别)
这篇文章主要介绍了mysql存储中使用while批量插入数据(批量提交和单个提交的性能差异),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-08-08MySQL的MaxIdleConns不合理,会变成短连接的原因
这篇文章主要介绍了MySQL的MaxIdleConns不合理,会变成短连接的原因,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下2021-01-01
最新评论