欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL的条件分组查询SQL语句写法

程序员文章站 2022-03-09 10:38:48
...

有这样一个需求,如下表所示,要查询同时满足dept_Id 和 course_id的条件的所有数据,但是这个数据可能有两组。

MySQL的条件分组查询SQL语句写法
例如当查查询当dept_id=20 并且 course_id=100003的数据
和dept_id=3并且 course_id=100002
如图所示,要根据下表的数据查询上表的值。teacher_Id为169时对应两组数据。
MySQL的条件分组查询SQL语句写法

这样的查询又不能group分组,也不能单独查询dept_id in (3,20) and course_id in (100002,100003)
查询查出来的数据是不准确的。

所以这里要用or来拼接查询。

我的实现方式是:

SELECT
	pro.teacher_project_id AS id,
	pro.dept_id,
	pro.course_id 
FROM
	t_teacher_project AS pro 
WHERE
	pro.teacher_project_id IN (
		SELECT
			t_teacher_project.teacher_project_id 
		FROM
			t_teacher_project 
		WHERE
			t_teacher_project.dept_id = 3 
			AND t_teacher_project.course_id = 100002 
		)
	OR pro.teacher_project_id IN (
		SELECT
			t_teacher_project.teacher_project_id 
		FROM
			t_teacher_project 
		WHERE
			t_teacher_project.dept_id = 20 
		AND t_teacher_project.course_id = 100003 
	)
		OR pro.teacher_project_id IN (
		SELECT
			t_teacher_project.teacher_project_id 
		FROM
			t_teacher_project 
		WHERE
			t_teacher_project.dept_id = 20 
		AND t_teacher_project.course_id = 100002 
	)	

这样,如果再有多个分组也后面直接拼接or就行了,or后面的分组的条件。
这样就可以实现将条件进行分组查询了。

我这种写法可能不太简介,如果有更好的写法欢迎留言指教,非常感谢!

MySQL的条件分组查询SQL语句写法

相关标签: 数据库