რომელი JOIN-ის ტიპებს იცნობ და რა განსხვავებაა მათ შორის?
sobes.tech AI
პასუხი AI-სგან
SQL-ში ძირითადი JOIN ტიპები და მათი განსხვავებები:
-
INNER JOIN — აბრუნებს მხოლოდ იმ ჩანაწერებს, რომლებიც ორივე ცხრილში ემთხვევა შეკავშირების პირობას.
-
LEFT JOIN (LEFT OUTER JOIN) — აბრუნებს ყველა ჩანაწერს მარცხენა ცხრილიდან და შესაბამისს მარჯვენა ცხრილიდან. თუ შესაბამისობა არ არის, მარჯვენა ცხრილის ველები იქნება NULL.
-
RIGHT JOIN (RIGHT OUTER JOIN) — აბრუნებს ყველა ჩანაწერს მარჯვენა ცხრილიდან და შესაბამისს მარცხენა ცხრილიდან.
-
FULL JOIN (FULL OUTER JOIN) — აბრუნებს ყველა ჩანაწერს ორივე ცხრილიდან, შესაბამისს და არამატყობინებელს, NULL-ით სადაც მონაცემები არ არის.
-
CROSS JOIN — ორი ცხრილის კარტეზიანული გამრავლება, აბრუნებს ყველა შესაძლო სვეტს.
მაგალითი:
-- 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-ის არჩევა დამოკიდებულია იმაზე, რა მონაცემებს გსურთ მიღება და როგორ მართოთ გამოტოვებული შესაბამისობები.