Вы можете использовать временную таблицу, вероятно, быстрее, чем множество объединений:
Conditions: GroupID, ItemDID
И заполнить ее следующим образом:
1, 146
1, 147
2, 7641
2, 7648
Затем потребуйте, чтобы каждая группа условий была удовлетворена:
select ID
, Name
from Item i
where not exists
(
select *
from Conditions c
left join
ItemID idd
on idd.ItemDID = c.ItemDID
and idd.ItemID = i.ItemID
group by
c.GroupID
having count(idd.ItemDTD) = 0
)
(Запрос не проверен; существует много вариантов.)