Sobes.tech
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.