Сравните два значения с двумя другими конкретными значениями в SQL

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

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, где я получаю все дни и все месяцы

было бы полезно опубликовать ваш текущий сценарий и желаемый результат.

iainc 10.04.2019 14:52
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
1
37
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы ищете not exists?

select t1.*
from t1
where not exists (select 1 from t2 where t2.day = t1.day and t2.month = t1.month);

Я хотел бы одновременно сравнить столбцы «День» и «месяц» первой таблицы с «день» и «месяц» второй таблицы. Поэтому, если я найду две одинаковые даты, я могу исключить учителя.

Babbara 10.04.2019 14:51

@Баббара. . . Вот что это делает.

Gordon Linoff 10.04.2019 14:52
Ответ принят как подходящий

Вы можете использовать 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; 

Другие вопросы по теме