Sobes.tech
Senior

Kādus JOIN veidus pazīsti un kā tie atšķiras?

sobes.tech AI

Atbilde no AI

Galvenie SQL apvienošanas (JOIN) veidi un to atšķirības:

  • INNER JOIN — atgriež tikai tās ierakstus, kuriem ir atbilstība abās tabulās pēc apvienošanas nosacījuma.

  • LEFT JOIN (LEFT OUTER JOIN) — atgriež visus ierakstus no kreisās tabulas un atbilstošos no labās. Ja atbilstība nav, labās tabulas lauki būs NULL.

  • RIGHT JOIN (RIGHT OUTER JOIN) — atgriež visus ierakstus no labās tabulas un atbilstošos no kreisās.

  • FULL JOIN (FULL OUTER JOIN) — atgriež visus ierakstus no abām tabulām, atbilstošos un neatbilstošos, ar NULL vietās, kur datu nav.

  • CROSS JOIN — divu tabulu karteziskais reizinājums, atgriež visas iespējamās rindu kombinācijas.

Piemērs:

-- 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;

Izvēle starp JOIN ir atkarīga no tā, kādus datus vēlaties iegūt un kā rīkoties ar trūkstošajām atbilstībām.