我似乎无法理解为什么这两个查询以下任务返回不同的结果:“发现学生谁只有有朋友在同档次的名称和等级回到依等级排序的结果,然后在每个年级的名字。“差异查询
表在这里:https://lagunita.stanford.edu/c4x/DB/SQL/asset/socialdata.html
第一个查询:
SELECT DISTINCT h1.name, h1.grade
FROM Highschooler h1, Friend f, Highschooler h2
WHERE h1.ID = f.ID1 AND h2.ID = f.ID2 AND h1.grade = h2.grade
ORDER BY h1.grade, h1.name
第二个查询:
select name, grade from Highschooler
where ID not in (
select ID1 from Highschooler H1, Friend, Highschooler H2
where H1.ID = Friend.ID1 and Friend.ID2 = H2.ID and H1.grade <> H2.grade)
order by grade, name;
第二个返回预期的结果,但不是第一个。如果有人关心澄清,谢谢。
,你可以在“但不是第一个”更精确?它以何种方式出乎意料? (如果您可以显示结果或相关部分,效果会更好) – Kaddath
更有意义的是两个查询都不会回答问题。 –