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.