Junior — Middle
Izskaidrojiet iekšējās un ārējās savienojuma atšķirības SQL.
sobes.tech AI
Atbilde no AI
SQL tiek iekšējās (INNER JOIN), gan ārējās (OUTER JOIN) savienojumi tiek izmantoti, lai apvienotu divu tabulu rindas, bet atšķiras pēc rindas izvēles veida:
-
Iekšējais savienojums (INNER JOIN) atgriež tikai tās rindas, kurām ir atbilstība abās tabulās pēc savienošanas nosacījuma.
-
Ārējais savienojums (OUTER JOIN) atgriež visas rindas no vienas tabulas un atbilstošās no otras. Ja atbilstība nav, vietās bez datiem būs NULL.
Ārējie savienojumi ir trīs veidi:
- LEFT OUTER JOIN — visas kreisās tabulas rindas + atbilstošās no labās
- RIGHT OUTER JOIN — visas labās tabulas rindas + atbilstošās no kreisās
- FULL OUTER JOIN — visas abu tabulu rindas, kur nav atbilstības, būs NULL
Piemērs:
SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
-- Atgriezīs tikai lietotājus ar pasūtījumiem
SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;
-- Atgriezīs visus lietotājus, pat ja tiem nav pasūtījumu (orders būs NULL)