Можете да направите нещо подобно:
select ItemID
from ItemCategory
where CategoryID in (5,6,7,8) <-- de-dupe these before building IN clause
group by ItemID
having count(distinct CategoryID) = 4 <--this is the count of unique items in IN clause above
Ако предоставите вашата схема и някои примерни данни, мога да дам по-подходящ отговор.