INTERSECT
Parte da seção Além do Básico do Journey de SQL da Coddy — lição 17 de 27.
INTERSECT retorna apenas as linhas que aparecem em ambos os conjuntos de resultados. Como o UNION, ele remove duplicatas e exige colunas correspondentes em cada lado.
SELECT email FROM newsletter_subs
INTERSECT
SELECT email FROM premium_usersIsso representa cada e-mail que está inscrito na newsletter e é um usuário premium, sem a necessidade de escrever um join.
Por que se preocupar, quando um JOIN também pode fazer isso? INTERSECT é mais curto quando ambos os lados são SELECTs simples e você está comparando a linha inteira, não apenas um id.
Desafio
FácilTabelas e colunas disponíveis:
<strong>newsletter</strong>:<strong>email</strong>,<strong>active</strong><strong>premium</strong>:<strong>email</strong>,<strong>plan</strong>
Retorne os e-mails que aparecem como assinantes ativos da newsletter (active = 1) e como usuários premium no plano 'pro'. Ordene em ordem alfabética.
Folha de consulta
INTERSECT retorna apenas as linhas que aparecem em ambos os conjuntos de resultados (duplicatas removidas, as colunas devem corresponder):
SELECT email FROM newsletter_subs
INTERSECT
SELECT email FROM premium_usersUse INTERSECT em vez de um JOIN ao fazer a correspondência de linhas inteiras em dois SELECTs simples.
Experimente você mesmo
-- filtrar cada lado antes do INTERSECT
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.