我有两个表students
和applications
。一个学生有一个ID和一个名字,可以提出很多申请。应用程序表具有ID,作为FK的学生ID和APPLICATION_STATUS。
我想显示所有其无其申请的APPLICATION_STATUS中有“ APPLICANT ACCEPTED OFFER”的学生。
我尝试过:
SELECT STUDENTS.FIRST_NAME ||' '||STUDENTS.LAST_NAME "Student Name"
FROM STUDENTS
JOIN APPLICATIONS ON STUDENTS.SRN = APPLICATIONS.SRN
WHERE APPLICATION_STATUS != 'APPLICANT ACCEPTED OFFER';
这是我到目前为止尝试过的方法,但是它没有显示未接受录取的学生,而是显示了所有未被接受的申请。
答案 0 :(得分:3)
您不需要加入,请使用not exists
SELECT STUDENTS.FIRST_NAME ||' '||STUDENTS.LAST_NAME "Student Name"
FROM STUDENTS
WHERE not exists ( select 1 from
APPLICATIONS where STUDENTS.SRN = APPLICATIONS.SRN
And APPLICATION_STATUS = 'APPLICANT ACCEPTED OFFER');