SQL查询问题:当table2具有2个条件时,从table1中获取不在table2中的数据

时间:2018-10-12 06:01:00

标签: sql sqlite

我有两个表,即tblStudent和tblAttendance。 tblStudent具有列stdnt_name和stdnt_subject。 tbl_Attendance具有stud_name,stud_subject,time_in和date_in。

我想获得在特定的一天中某个特定科目缺席的学生的姓名。

示例:

tblStudents
John.     Prog101
Jen.       Prog101
Jimmy. Prog101
Drew.     Prog101
Nemo.   Prog101
Kobe.     Code101

tblAttendance

John.  Prog101. 10:02am.  10/12
Jen.     Prog101. 10:03am.  10/12
Kobe.  Code101.  10:30am. 10/12

那么其他人都没有参加。

我希望查询显示名称:

吉米。 提请 尼莫。

我该怎么做?谢谢。

2 个答案:

答案 0 :(得分:0)

尝试使用左联接

select tblStudents.name from tblStudents left join tblAttendance
on tblStudents.name=tblAttendance.name and tblStudents.subject=tblAttendance.subject and date='2018-10-12'
where tblAttendance.name is null

答案 1 :(得分:0)

您还可以使用嵌套查询

SELECT TBLSTUDENT.STDNT_NAME
FROM TBLSTUDENT 
WHERE 
TBLSTUDENT.STDNT_NAME 
    NOT IN (SELECT TBLATTENDANCE.STDNT_NAME FROM TBLATTENDANCE)
AND 
TBLSTUDENT.STDNT_SUBJECT 
    NOT IN ( SELECT TBLATTENDANCE.STDNT_SUBJECT FROM TBLATTENDANCE)