将两个值与 SQL 中的其他两个特定值进行比较



我也有两个结构化的表格:

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);

相关内容

  • 没有找到相关文章

最新更新