所有记录中的考试成绩表返回记录,其中1个== PASS和0 == FAIL所有比赛并且其中至少一个不匹配
ID Name Test Result
--------------------
1 John MATH 1
2 John ENGL 1
3 Mary MATH 1
4 Mary PSYC 0
编辑:假设名字是唯一的。
我需要获得所有记录谁
1)通过了所有测试
2)失败的人至少有一个测试
所以,第一个查询应返回约翰和他的所有记录,以及第二个查询应该返回Mary和她的所有记录(包括具有PASS的记录)。
我试图做一个LEFT OUTER JOIN
本身和比较计数,但似乎没有得到一个工作查询。
SELECT * FROM Results R1
LEFT OUTER JOIN Results R2 on R1.ID=R2.ID and R2.Result=1
WHERE ??? count of rows from R1 is compared to count of non-null rows from R2
这对于通过所有测试的情况无效,因为玛丽会在两个查询中返回 – 2012-08-17 18:06:37
@JustinPihony不,因为'EXISTS'前面的'NOT',她不会被包括在“全部通过”结果中。请参阅[sqlfiddle](http://sqlfiddle.com/#!3/2a4c4/5)的链接。 – dasblinkenlight 2012-08-17 18:14:22
当你的名字加入时你是对的,但是改变它以脱离ID是错误的。 http://sqlfiddle.com/#!3/d8b08/2 – 2012-08-17 18:16:34