我也有两个结构化的表格:
Teacher | Day | Month Day | Month
Red 12 June 12 June
Blue 19 May 8 September
Green 15 July 2 May
我想排除第二个表中出现的所有日期,所以我想在 where 子句中也使用 AND 来构建查询:AND (day NOT IN ("+day.table+") AND month NOT IN ("+month.table+"))"
但通过这种方式,它会删除所有数据,其中包含第二个表中的一天或一个月之一(它只给了我格林老师(。我该如何改进它?PS:month.table 和 day.table 只是两个 SELECT 我得到所有月份的所有天数
您可以使用 LEFT JOIN 并消除第二个表中有条目的条目。
SELECT * FROM table1 AS t1 LEFT JOIN table2 AS t2
ON t1.Day = t2.Day AND t1.Month = t2.Month
WHERE t2.Day IS NOT NULL;
你在找not exists
吗?
select t1.*
from t1
where not exists (select 1 from t2 where t2.day = t1.day and t2.month = t1.month);