Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex.5 da Aula 4 - Filtrando agregações e o Having

Ola, Eu gostaria de saber qual é a diferença entre os dois codigos, pois aparentemento os dois executam perfeitamente.

eu sei que no primeiro codigo eu estou consultando a matricula, e no segundo codigo eu estou consultando o curso, tem algum problema nisso?

1 codigo

select c.nome, count(m.id) from 
matricula m join curso c on c.id = m.curso_id
group by c.nome 
having count(m.id) >1;

2 codigo

select c.nome, count(m.id) from 
curso c join matricula m on c.id = m.curso_id
group by c.nome
having count(m.id) > 1
2 respostas
solução!

A diferença é só a escolha de qual tabela será incluída em primeiro lugar na consulta.

Se você utilizar o EXPLAIN para avaliar as consultas, você verá o mesmo resultado.

EXPLAIN  select c.nome, count(m.id) from 
matricula m join curso c on c.id = m.curso_id
group by c.nome 
having count(m.id) >1;

EXPLAIN select c.nome, count(m.id) from 
curso c join matricula m on c.id = m.curso_id
group by c.nome
having count(m.id) > 1

obrigado pela reposta!!! Essa função EXPLAIN é bem interessante, vou começar a usar ela pra ver a diferença entre as consultas .

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software