Sobes.tech
Junior — Middle

გთხოვთ, ახსნათ SQL-ში შიდა და მარცხენა შეზღუდვის განსხვავება და რომელ სიტუაციებში გამოიყენება თითოეული მათგანი?

sobes.tech AI

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

შიდა კავშირი (INNER JOIN) აბრუნებს მხოლოდ იმ სვეტებს, რომლებიც ემთხვევა ორივე ცხრილში კავშირის პირობის შესაბამისად. თუ ემთხვევა არ არის, სვეტი არ შედის შედეგში.

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

Inner join გამოიყენება, როდესაც საჭიროა მხოლოდ ორივე ცხრილში ემთხვევა მონაცემები, მაგალითად, შეკვეთების სია მომხმარებლების ინფორმაციით, მხოლოდ თუ მომხმარებელი არსებობს.

Left join გამოიყენება, როდესაც მნიშვნელოვანია ყველა მონაცემის შენახვა მარცხენა ცხრილიდან, მაშინაც კი, თუ მათთვის შესაბამისი ჩანაწერები მარჯვენაში არ არის, მაგალითად, ყველა მომხმარებელი და მათი შეკვეთები, მათ შორის, მომხმარებლები, რომლებსაც შეკვეთები არ აქვთ.

მაგალითი:

SELECT customers.name, orders.id
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;