SQL query-ID не существует в другой таблице или существует, но со всеми записями в истории?
У меня есть таблица T1
ID
1
2
3
И таблица T2
ID HISTORY
1 1
1 1
2 1
2 0
Я должен выбрать из T1 все записи, которые не существуют в T2 или существуют, но все записи находятся в истории (флаг истории =1)
Так что для этого мой результат будет
1
3
Каков правильный SQL-запрос для этого? Спасибо
3 ответа:
Попробуйте это:
select * from T1 where ID not in(select ID from T2 where HISTORY_FLG!=1)
SQL Fiddle demo
Попробуйте использовать
not exists
select * from t1 t where not exists ( select 1 from t2 a where a.id = t.id and a.HISTORY <> 1 )
SQL Fiddle DEMO