1
resposta

Questão 5 diferenças entre querys

Fiz a minha query da seguinte maneira.

select e.pergunta as PERGUNTA, count(r.id) from exercicio e
    join resposta r on r.exercicio_id = e.id
    join aluno a on a.id = r.aluno_id
    join matricula m on m.aluno_id = a.id
    join curso c on c.id = m.curso_id
    where c.id in (1,3)
    group by e.pergunta;

Ela retornou 17 linhas, a seguir:

PERGUNTA                       COUNT(R.ID)

O que eh um delete?                          1
O que eh um select?                          2
O que eh um update?                          1
O que eh iteracao                               1
Tem outros?                                      1
O que sao retrospectiva?                1
O que eh xp?                                     1
Cuidados com ele?                            1
O que eh a classe Result?                1
O que eh a reuniao diaria?              1
Qual tamanho bom?                            1
Quando fazemos?                              1
O que eh kanban?                             1
Como funciona um select?              2
Perigos do update?                           2
O que eh um insert?                          1
Quando devemos fazer?                      1

17 linhas selecionadas. Porém, a query da resposta:

select e.pergunta, count(r.id) as quantidade from exercicio e
       join resposta r on e.id = r.exercicio_id
       join secao s on s.id = e.secao_id
       join curso c on s.curso_id = c.id
   where c.id in (1,3)
   group by e.pergunta;

Retorna 16 linhas:

PERGUNTA                       QUANTIDADE

O que eh um delete?                         1
O que eh um select?                         2
O que eh um update?                        1
O que eh iteracao                               1
Tem outros?                                     1
O que sao retrospectiva?                1
O que eh xp?                                    1
Cuidados com ele?                           1
O que eh a reuniao diaria?              1
Qual tamanho bom?                          1
Quando fazemos?                             1
O que eh kanban?                            1
Como funciona um select?              2
Perigos do update?                          2
O que eh um insert?                         1
Quando devemos fazer?            1

O que aconteceu e qual a diferença das duas?

Obrigado desde já :)

1 resposta

Oi Judecir, tudo bem? Eu também não entendi bem a diferença de número de linhas retornadas, mas a curiosidade é que sua query é bem mais criteriosa do que a da resposta do exercício. Veja que ela não se importa em envolver o aluno e matricula.