Sobes.tech
Junior

SQL-ში LEFT JOIN და RIGHT JOIN შორის რა განსხვავებაა?

sobes.tech AI

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

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

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

ძირითადი განსხვავება იმაშია, თუელი ცხრილი ითვლება "სრულყოფილად", ანუ რომელი ცხრილიდან დაბრუნდება ყველა სტრიქონი незалежოდ შესაბამისობის არსებობისა მეორე ცხრილში.

SQL-ის მაგალითი:

ცხრილი TableA:

ID მნიშვნელობაA
1 A1
2 A2
3 A3

ცხრილი TableB:

ID მნიშვნელობაB
2 B2
3 B3
4 B4

LEFT JOIN:

SELECT *
FROM TableA
LEFT JOIN TableB ON TableA.ID = TableB.ID;

LEFT JOIN-ის შედეგი:

ID (მთლიანი TableA-დან) მნიშვნელობაA ID (მთლიანი TableB-დან) მნიშვნელობაB
1 A1 NULL NULL
2 A2 2 B2
3 A3 3 B3

RIGHT JOIN:

SELECT *
FROM TableA
RIGHT JOIN TableB ON TableA.ID = TableB.ID;

RIGHT JOIN-ის შედეგი:

ID (მთლიანი TableA-დან) მნიშვნელობაA ID (მთლიანი TableB-დან) მნიშვნელობაB
2 A2 2 B2
3 A3 3 B3
NULL NULL 4 B4

LEFT JOIN და RIGHT JOIN ხშირად შეიძლება ურთიერთგამომრიცხავი იყოს ცხრილების შეცვლის გზით: A LEFT JOIN B თანაბარია B RIGHT JOIN A.