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