有一个 sql 查询问题,我应该找出哪些用户通过了所有测试。以下是表格:
例如:名称表(列名称)
用户(用户名,密码)
测试(测试#,creditpertrue,negperfalse,total,neededcredit)
{creditpertrue=每个正确答案的分数,negperfalse=每个错误答案的分数,total=是测试的总分,needcredit 是通过测试的分数}
问题(测试#,q#,truechoice#)
user_test(userid,test#)
{此表显示哪个用户参加了哪个测试(一个用户只能参加一次测试)}
user_test_question(uesrid,test#,q#,userchoice#) {此表显示每个用户在每个测试和问题中的选择#可能是错的或正确的}
现在的问题是:
find out the userid of users that have passed all of the tests.
我想到的一个解决方案是:
像这样创建 2 个视图:view1:userid,test#,numberofrightchoices
和
view2:userid,test#,numberofwrongchoices
然后在这两个视图上使用选择并使用 numberofrightchoices*creditpertrue-numberofwrongchoices*negperfalse>=neededcredit
是否可以?