Como que se lê este comando SQL

Aeeeeeew galera, to lendo um livro de SQL, e o autor colocou esse comando abaixo:

SELECT mc.nome, mc.sobrenome FROM meus_contatos mc WHERE 3 = (SELECT COUNT(*) FROM contato_interesse WHERE id_contato = mc.id_contato);
A tabela contato_interesse possui uma coluna com o ID da pessoa e outra com o ID do interesse:
por exemplo:
ID| Interesse
1 | 20
1 | 22
2 | 23
2 | 20
2 | 14
ou seja a pessoa com ID = 1 tem dois interesses e a pessoa com ID = 2 tem 3 interesses e assim por diante.

No livro diz que o comando acima vai mostrar apenas pessoas que tem 3 interesses.

Queria saber como ler esse comando, e ali na linha 3 como posso ler aquele 3 depois do WHERE?

[]s

Aquele 3 indica a quantidade de interesses que um contato tem.

Para ajudar seu entendimento, primeiro rode a seguinte query:

SELECT mc.nome, mc.sobrenome, (SELECT COUNT(*) FROM contato_interesse WHERE id_contato = mc.id_contato) quantidade FROM meus_contatos mc;

Isso vai te mostrar, a quantidade de interesses de cada contato.

O que a primeira query fez foi mover essa terceira coluna pro WHERE e considerar apenas os que possuiam 3, entendeu?

Sim entendi, ficou mais claro agora.

Vlw Abel.