Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL encontra conjuntos com membros comuns (divisão relacional)


Acho que isso também deve funcionar
select distinct g.GroupID, c.ClassID
from @Groups g
    left join @Classes c on g.TagID = c.TagID
where not exists (
    select *
    from @Groups g2
    where g2.GroupID = g.GroupID
        and g2.TagID not in (
            select TagID
            from @Classes c2
            where c2.ClassID = c.ClassID
        )
    ) or c.ClassID is null