3
Я хочу, чтобы обновить одну таблицы, которая является внутренним соединением к другому столу, но строки, которые должны быть обновлены, должны иметь определенное условие или не существуют во второй таблице:Обновление таблицы присоединилась к другому столу с различными условиями
Update T1
Set STATUS = 'R'
From table1 T1
inner join table2 T2
on T1.ID = T2.ID and T2.STATUS = 'F'
Update T1
Set STATUS = 'R'
From table1 T1
Where T1.ID not exists in(Select T2.ID from table2 T2)
Как я могу написать его одним запросом?
Извините @Stephen но «OR» не может работать с одним логическим условием в стороне и присоединиться к другому одному – IlhamM
Попробуйте это, я забыл включить скобки. Обновить T1 Установить STATUS = 'R' из таблицы1 T1 внутренняя таблица соединений2 T2 на T1.ID = T2.ID где (T2.STATUS = 'F') или (T1.ID не существует (выберите T2.ID из таблицы2 T2)) – Mez
С существу имеет синтаксическую ошибку. Поэтому я заменяю его: Update T1 Set STATUS = 'R' из таблицы1 T1 внутренняя таблица соединения2 T2 на T1.ID = T2.ID где (T2.STATUS = 'F') или (T1.ID не в (выберите T2.ID из таблицы2 T2)), но он вернул неверный результат, поскольку он проверяет только первую часть «Условие», – IlhamM