Sobes.tech
Senior

რომელი 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-ის არჩევა დამოკიდებულია იმაზე, რა მონაცემებს გსურთ მიღება და როგორ მართოთ გამოტოვებული შესაბამისობები.