我有以下postgreSQL语句,它返回学校开放的日期,需要参加
SELECT school_date
FROM attendance_calendar
WHERE syear='$syear'
AND school_date<CURRENT_DATE
AND calendar_id='$cal_ID'
然后我有另一个名为attendance_completed的表,它有一个名为school_date的列,我想从上面的语句中查询每个返回的日期。但是,而不是做两个不同的陈述,只是想知道是否有人可以帮助组合声明?
基本上,我希望上面的语句检查返回的school_date是否存在于名为attendance_completed的表中,并且仅返回缺少的日期。
由于
答案 0 :(得分:0)
这应该适合你:
SELECT cal.school_date
FROM attendance_calendar cal
WHERE cal.school_date NOT IN (
SELECT com.school_date
FROM attendance_completed com
WHERE com.school_date IS NOT NULL
) AND
cal.syear = '$syear' AND
cal.school_date < CURRENT_DATE AND
cal.calendar_id = '$cal_ID;