У меня также есть две таблицы:
Teacher | Day | Month Day | Month
Red 12 June 12 June
Blue 19 May 8 September
Green 15 July 2 May
Я хотел бы исключить все даты, которые появляются во второй таблице, поэтому я решил структурировать запрос с помощью И в структурированном предложении where: AND (day NOT IN ("+day.table+") AND month NOT IN ("+month.table+"))"
но таким образом он удаляет все данные с одним из дней или один месяца, которые есть во второй таблице (это дает мне только учитель Грин). Как я могу улучшить его?
PS: month.table и day.table - это просто два SELECT, где я получаю все дни и все месяцы
Вы ищете not exists
?
select t1.*
from t1
where not exists (select 1 from t2 where t2.day = t1.day and t2.month = t1.month);
Я хотел бы одновременно сравнить столбцы «День» и «месяц» первой таблицы с «день» и «месяц» второй таблицы. Поэтому, если я найду две одинаковые даты, я могу исключить учителя.
@Баббара. . . Вот что это делает.
Вы можете использовать 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;
было бы полезно опубликовать ваш текущий сценарий и желаемый результат.