得到一个没有周末和节假日的 table。 MYSQL

get a table without weekend and holidays. MYSQL

我已经写了两个table了。第一个是 time_dimension 年份的所有日期,第二个 tbl_holidays 是今年的 public 假期。但是,我想得到没有周末和假期的一天。我写的查询是这样的;

SELECT ti.id, ti.db_date, ti.year, ti.month, ti.day, ti.quarter, ti.week,   ti.day_name, ti.month_name
FROM time_dimension ti
LEFT JOIN  tbl_holidays tb on ti.db_date=tb.startdate
where  day_name in ('Monday','Tuesday','Wednesday','Thursday','Friday');

谁能帮我去掉这个查询中的假期 table?

更新答案:

SELECT ti.id, ti.db_date, ti.year, ti.month, ti.day, ti.quarter, ti.week, ti.day_name, ti.month_name
FROM DeJuMa.time_dimension ti
LEFT JOIN  tbl_holidays tb on ti.db_date=tb.startdate
where  day_name in ('Monday','Tuesday','Wednesday','Thursday','Friday')
AND ti.db_date NOT IN (select startdate from tbl_holidays tb );

您可以使用NOT EXISTS排除节假日:

SELECT *
FROM time_dimension ti
WHERE
    NOT EXISTS(SELECT 1 FROM tbl_holidays WHERE startdate = ti.db_date)
    AND day_name IN ('Monday','Tuesday','Wednesday','Thursday','Friday');
    SELECT ti.id, ti.db_date, ti.year, ti.month, ti.day, ti.quarter, ti.week, ti.day_name, ti.month_name
        FROM time_dimension ti WHERE day_name NOT IN ('Saturday','Sunday')
        AND ti.db_date NOT IN (SELECT startdate FROM tbl_holidays);