Middle
Aký je minimálny a maximálny počet riadkov, ktoré vráti dotaz SELECT * FROM A LEFT JOIN B?
sobes.tech AI
Odpoveď od AI
Dopyt SELECT * FROM A LEFT JOIN B vráti všetky riadky z tabuľky A a zodpovedajúce riadky z tabuľky B. Ak pre riadok z A neexistuje zodpovedajúci riadok v B, polia z B budú vyplnené hodnotou NULL.
- Minimálny počet riadkov: 0, ak je tabuľka A prázdna.
- Maximálny počet riadkov: počet riadkov v A vynásobený počtom zodpovedajúcich riadkov v B pre každý riadok v A, ale pretože LEFT JOIN neduplikuje riadky z A bez zhody, maximálny počet riadkov je rovný počtu riadkov v A, ak v B nie sú viaceré zhody.
V praxi, ak pre každý riadok v A existuje niekoľko zhôd v B, počet riadkov bude rovný súčtu všetkých týchto zhôd. Ak zhody neexistujú, počet riadkov bude rovný počtu riadkov v A.
Príklad:
| A.id | B.a_id |
|---|---|
| 1 | 1 |
| 1 | 1 |
| 2 | NULL |
Tu, pre A.id=1, sú 2 zhody v B; pre A.id=2, žiadna, takže celkovo je 3 riadky.