Sobes.tech
Senior

Milliseid JOIN-tüüpe tead ja kuidas nad erinevad?

sobes.tech AI

Vastus AI-lt

SQL-i põhiliigid JOIN ja nende erinevused:

  • INNER JOIN — tagastab ainult need kirjed, millel on vastavus mõlemas tabelis vastavalt ühendustingimusele.

  • LEFT JOIN (LEFT OUTER JOIN) — tagastab kõik kirjed vasakpoolsest tabelist ja vastavad parempoolsest. Kui vastavust pole, parempoolsete väljade väärtused on NULL.

  • RIGHT JOIN (RIGHT OUTER JOIN) — tagastab kõik kirjed parempoolsest tabelist ja vastavad vasakpoolsest.

  • FULL JOIN (FULL OUTER JOIN) — tagastab kõik kirjed mõlemast tabelist, nii vastavad kui ka mitte-vastavad, NULL-idega kohtades, kus andmeid pole.

  • CROSS JOIN — kahe tabeli kartesiaaniline korrutis, tagastab kõik võimalikud ridade kombinatsioonid.

Näide:

-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.a_id;

-- LEFT JOIN
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;

-- RIGHT JOIN
SELECT * FROM A RIGHT JOIN B ON A.id = B.a_id;

-- FULL JOIN
SELECT * FROM A FULL JOIN B ON A.id = B.a_id;

-- CROSS JOIN
SELECT * FROM A CROSS JOIN B;

JOIN valik sõltub sellest, milliseid andmeid soovite saada ja kuidas käsitleda puuduvad vastavused.