好的,所以我想解决的查询:
我想表达以下业务规则:
显示需要其他审阅的组(针对特定的教程(tutorialID)和星期(星期)).
因此,基本上我需要确定组中的成员数量,然后需要汇总该周和该组的所有Scrum评论,并查看该数量是否等于该组中的成员数量.如果是这样,则意味着该周所有成员都已接受审核,因此不需要显示.
假设:一个成员每周只能审核一次.
我尝试了以下SQL,但是出现以下错误Subquery返回多于1行
SELECT groupName, g.groupId
FROM `student` s, `group` g
WHERE s.GroupId = g.GroupId
AND s.GroupId IS NOT NULL
AND s.tutorialId = 2
GROUP by s.GroupId
AND s.GroupID = (
SELECT GroupId
FROM student
GROUP BY GroupId
HAVING count(*)> (
SELECT count(*)
FROM scrumreview r, student s
WHERE r.reviewee = s.studentID
GROUP BY GroupId
AND r.week = 5
)
)
学生
审查
组
解决方法:
您的内部查询(从第8行开始)返回多个groupid.等于运算符=比较1对1,但是您要比较1对多,您可以使用IN进行比较.
因此,要解决此问题,请在第7行中更改此代码…
AND s.GroupID = (
…对此:
AND s.GroupID IN (
标签:sql,mysql,database 来源: https://codeday.me/bug/20191201/2080480.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。