Sobes.tech
Middle

Qual é o número mínimo e máximo de linhas que a consulta SELECT * FROM A LEFT JOIN B retornará?

sobes.tech IA

Resposta da IA

A consulta SELECT * FROM A LEFT JOIN B devolve todas as linhas da tabela A e as linhas correspondentes da tabela B. Se não houver uma linha correspondente em B para uma linha de A, os campos de B serão preenchidos com NULL.

  • Número mínimo de linhas: 0, se a tabela A estiver vazia.
  • Número máximo de linhas: o número de linhas em A multiplicado pelo número de linhas correspondentes em B para cada linha de A, mas como o LEFT JOIN não duplica as linhas de A sem correspondências, o número máximo de linhas é igual ao número de linhas em A se não houver múltiplas correspondências em B.

Na prática, se para cada linha de A houver várias correspondências em B, o número de linhas será a soma de todas essas correspondências. Se não houver correspondências, o número de linhas será igual ao número de linhas em A.

Exemplo:

A.id B.a_id
1 1
1 1
2 NULL

Aqui, para A.id=1, há 2 correspondências em B; para A.id=2, não há correspondências, portanto, há um total de 3 linhas.