我想要相反的结果

时间:2016-09-15 05:18:16

标签: sql sql-server sql-server-2012

我有两张桌子要展示没有结果的学生

学生表

Sname  snumber
A              1
B              2
C              3
G              4

结果表

Snumber  marks
1                 90
4                 60

我有以下代码

Select student.sname from student
Join results
On student.snumber=results.snumber

它向学生展示结果。我希望学生没有结果是B和C

2 个答案:

答案 0 :(得分:3)

试试这个,

Select student.sname 
from student
LEFT Join results
    On student.snumber=results.snumber
WHERE results.snumber is null

如果你想要所有学生,那么删除where子句。

答案 1 :(得分:2)

LEFT JOIN解决方案(@Jatin Patel)之后,您可以看到NOT EXISTS一个:

SELECT *
FROM Students S
WHERE NOT EXISTS(SELECT * FROM results R WHERE S.snumber=R.snumber)