Выберите Строки Из Первой Таблицы Для Тех Же Значений Столбцов во Второй Таблице

#sql

#sql

Вопрос:

Мое требование заключается в следующем: для каждого Deal Id я хочу проверить соответствующие записи в Deal Interest таблице , и если какая-либо из них для строки содержится Y в UserModified столбце, я не хочу ее выбирать Deal Id .

Поэтому в конце вывод должен содержать эти идентификаторы сделок:

  • 1001 — НЕТ — Поскольку одной из записей в Таблице Процентных ставок по сделкам является Y
  • 1002 — ДА — Так как все записи N
  • 1003 — ДА — Так как все записи N

Структура таблиц выглядит следующим образом:

Deal стол:

  ------- ------ ---------  |Deal_ID|Status|InputMode|  ------- ------ ---------  |1001 |V |C |  ------- ------ ---------  |1002 |V |C |  ------- ------ ---------  |1003 |V |C |  ------- ------ ---------   

Таблица процентных ставок по сделкам:

  ------ ------------ -----------  |ARIDNR|UserModified|PaymentDate|  ------ ------------ -----------  |1001 |N |2021-10-12 |  ------ ------------ -----------  |1001 |N |2021-11-12 |  ------ ------------ -----------  |1001 |Y |2021-12-13 |  ------ ------------ -----------  |1001 |N |2022-01-12 |  ------ ------------ -----------  |1002 |N |2021-11-24 |  ------ ------------ -----------  |1002 |N |2021-12-23 |  ------ ------------ -----------  |1003 |N |2021-11-14 |  ------ ------------ -----------  |1003 |N |2022-01-11 |  ------ ------------ -----------   

Комментарии:

1. Пометка «спам» не поможет нам помочь вам. Отметьте правильно и просто отметьте технологию, которую вы используете/о которой спрашиваете.

2. Я почему-то сомневаюсь, что вы используете MySQL, MS SQL Server и Oracle одновременно. Какую базу данных вы действительно используете?

3. Что касается вашего вопроса, то в чем он заключается? Здесь ты ни о чем не спрашиваешь.

Ответ №1:

Я думаю, вы хотите знать все идентификаторы, в которых нет строки DealInterestTable со значением Y в столбце UserModified ?
Если это правильно, то этот запрос может вам помочь

 select d.Deal_ID from Deal d where not exists (select 1 from DealInterestTable it   where it.ARIDNR = d.Deal_ID   and it.UserModfied = 'Y')