我有两张桌子。第一个表是batch
在字段“batch”中包含逗号分隔的学生 ID 的表
batch
--------------
id batch
--------------
1 1,2
2 3,4
第二个表是分数
marks
----------------------
id studentid subject marks
1 1 English 50
2 2 English 40
3 3 English 70
4 1 Math 65
5 4 English 66
6 5 English 75
7 2 Math 55
我们如何在不使用子查询的情况下找到第一批 id =1 英语成绩超过 45 分的学生。
我发现使用单个查询完成此操作的问题是我们不能使用IN作为 JOIN 语句中的关联运算符
下面的查询需要进行哪些更改才能使其正常工作?
SELECT * FROM batch
INNER JOIN marks ON marks.studentid IN(batch.batch) where batch.id = 1
SELECT m.studentId
FROM batch b
JOIN marks m
ON FIND_IN_SET(m.studentId, b.batch)
AND m.subject = 'English'
GROUP BY
m.studentId
HAVING SUM(marks) > 45
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)