Сравните два значения с двумя другими конкретными значениями в SQL - PullRequest
0 голосов
/ 10 апреля 2019

У меня также есть две таблицы:

Teacher | Day | Month               Day | Month
  Red     12    June                12    June
 Blue     19    May                 8     September 
 Green    15    July                2     May

Я хотел бы исключить все даты, которые отображаются во второй таблице, поэтому я решил структурировать запрос с помощью оператора AND и в предложении where: AND (day NOT IN ("+day.table+") AND month NOT IN ("+month.table+"))", но при этом он удаляет все данные одним дня или одного месяца, которые есть во второй таблице (это дает мне только учитель Грин). Как я могу улучшить это? PS: month.table и day.table просто два SELECT, где я получаю все дни за все месяцы

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Вы можете использовать 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; 
1 голос
/ 10 апреля 2019

Вы ищете not exists?

select t1.*
from t1
where not exists (select 1 from t2 where t2.day = t1.day and t2.month = t1.month);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...