新手问题,请原谅我的无知:P

我有一个具有不同列的数据集。测验,名字,等级。有些学生没有完成所有测验。我只想做8个测验的人。我把这段代码:

SELECT *  FROM quiz_attempts
WHERE qname like "onlinelernen_quiz_1"
AND qname like "onlinelernen_quiz_2"
AND qname like "onlinelernen_quiz_3"
AND qname like "onlinelernen_quiz_4"
AND qname like "onlinelernen_quiz_5"
AND qname like "onlinelernen_quiz_6"
AND qname like "onlinelernen_quiz_7"
AND qname like "onlinelernen_quiz_8"*/


使用INOR是有效的,但它会显示所有参加测验的学生。但是我只想要那些完成所有8个测验的学生。

谢谢您的帮助。

最佳答案

由于您要查询qname类似于“ onlinelernen_quiz_1”的所有记录,而同时查询“ onlinelernen_quiz_2” 3等的所有记录,因此这是不可能的。

试试这个:它仅显示出现8次与Onlinelernen测验相关的学生的姓名

SELECT Q.stname
FROM quiz_attempts AS Q
WHERE Q.qname Like 'onlinelernen_quiz_%'
GROUP BY Q.stname
HAVING Count(Q.stname)=8;


祝好运!

关于mysql - 这个简单的SQL查询有什么问题?它返回0行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29097115/

10-12 18:32