Sobes.tech
Junior

რა არის SQL-ში მარცხენა შეუერთება (left join)?

sobes.tech AI

პასუხი AI-სგან

ლევი შეუერთება (LEFT JOIN ან LEFT OUTER JOIN) SQL-ში გამოიყენება ორი ცხრილის რიგების გაერთიანებისთვის.

LEFT JOIN-ის შედეგი მოიცავს:

  • ყველა რიგს მარცხენა (პირველი) ცხრილიდან.
  • შესაბამის რიგებს მარჯვენა (მეორე) ცხრილიდან, სადაც შეესაბამება პირობებს.
  • მარცხენა ცხრილის რიგებისთვის, რომლებსაც არ აქვთ შესაბამისობა მარჯვენაში, მარჯვენა ცხრილის სვეტები შეიცავს NULL მნიშვნელობებს.

სინტაქსის მაგალითი:

SELECT <სვეტების სია>
FROM <მარცხენა ცხრილი> AS L
LEFT JOIN <მარჯვენა ცხრილი> AS R ON L.<შეერთების სვეტი> = R.<შეერთების სვეტი>;

მუშაობის სქემა:

მცდელობა ხდება მარცხენა ცხრილის თითოეული რიგის. თითოეული რიგისთვის ეძებება შესაბამისობა მარჯვენა ცხრილში ON პირობით:

  • თუ შესაბამისობა იპოვეს, მარცხენა რიგი იკვრება მარჯვენა ცხრილის ყველა შესაბამისი რიგისთან:
  • თუ შესაბამისობა არ იპოვეს, მარცხენა რიგი შედის შედეგში, ხოლო მარჯვენა სვეტები ივსება NULL-ით:

ვიზუალური წარმოდგენა:

წარმოიდგინეთ ორი მონაცემთა ნაკადი: Left (მარცხენა ცხრილი) და Right (მარჯვენა ცხრილი). LEFT JOIN აბრუნებს ყველა ელემენტს Left-დან, ასევე იმ ელემენტებს Right-დან, რომლებსაც აქვთ შესაბამისობა Left-ში. თუ Left-ში არიან ელემენტები, რომლებსაც არ აქვთ შესაბამისობა Right-ში, ისინი მაინც შედიან შედეგში, მაგრამ მათი შესაბამისი ველები Right-დან იქნება ცარიელი (NULL).

შედარება სხვა JOIN ტიპებთან:

JOIN ტიპი აღწერა
INNER JOIN აბრუნებს მხოლოდ იმ რიგებს, სადაც არის შესაბამისობა ორივე ცხრილში.
LEFT JOIN აბრუნებს ყველა რიგს მარცხენა ცხრილიდან და შესაბამისს მარჯვენიდან. თუ არ არის შესაბამისობა, ივსება NULL-ით.
RIGHT JOIN აბრუნებს ყველა რიგს მარჯვენა ცხრილიდან და შესაბამისს მარცხნიდან. თუ არ არის შესაბამისობა, ივსება NULL-ით.
FULL OUTER JOIN აბრუნებს ყველა რიგს, თუ არის შესაბამისობა ან არა. NULL-ით ივსება არა შესაბამისი რიგები.

ასე რომ, LEFT JOIN სასარგებლოა, როდესაც გსურთ მიიღოთ სრული სია ერთ ცხრილიდან და დაამატოთ ინფორმაცია მეორე ცხრილიდან, მიუხედავად იმისა, რომ ყველა ჩანაწერისთვის არ არსებობს შესაბამისი მონაცემები.