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.