1
resposta

Join X sub-queries

Diante das aulas de sub-queries, observei que usando o join também poderia chegar ao mesmo resultado da sub-queries. No caso: Sub-queries

select a.nome, 
    (select count(r.id) from resposta r where r.aluno_id = a.id) as respostas 
from aluno a;

Join

select a.nome, count(r.id) from aluno a
  join resposta r on a.id = r.aluno_id
  group by a.nome
  order by a.nome;

A resposta é quando se usa a sub-queries ela te retorna até quem não respondeu, enquanto que no join somente quem respondeu. Por via de regra, ambos podem ser usados em todos os casos? Ou teria restrição?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Boa noite o sub-queries vai trazer o registro conforme a tabela principal aluno se nao tive traz null na coluna.

A segundo exemplo e por que o join obriga trazer somente os registro igual nas duas tabelas, podendo ficar igual do sub-queries se você colocar LEFT ou RIGHT

exemplo select a.* from compras a LEFT join COMPRADORES r on a.id = r.id