Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ შიგნით კავშირის და მარცხენა კავშირის განსხვავებები SQL-ში?

sobes.tech AI

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

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

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

მაგალითი:

SELECT a.id, a.name, b.order_id
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;

მხოლოდ იმ მომხმარებლებს დააბრუნებს, რომლებსაც აქვთ შეკვეთები.

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

ყველა მომხმარებელს დააბრუნებს, მათ შორის, რომლებსაც შეკვეთები არ აქვთ (ამ შემთხვევაში, order_id იქნება NULL).