Junior
როგორ მუშაობს SQL Join?
sobes.tech AI
პასუხი AI-სგან
SQL JOIN ორი ან მეტი ცხრილის ხაზებს აერთიანებს მათ შორის დაკავშირებული სვეტზე დაფუძნებით. არსებობს რამდენიმე ტიპის JOIN:
INNER JOIN: აბრუნებს ხაზებს, სადაც მნიშვნელობები ემთხვევა ორივე ცხრილში.LEFT (OUTER) JOIN: აბრუნებს ყველა ხაზს მარცხენა ცხრილიდან და ემთხვევა ხაზებს მარჯვენა ცხრილიდან. თუ ემთხვევა, მარჯვენა ცხრილის სვეტებში იქნება მნიშვნელობა; თუ არა, იქნებაNULL.RIGHT (OUTER) JOIN: აბრუნებს ყველა ხაზს მარჯვენა ცხრილიდან და ემთხვევა ხაზებს მარცხენა ცხრილიდან. თუ ემთხვევა, მარცხენა სვეტებში იქნება მნიშვნელობა; თუ არა, იქნებაNULL.FULL (OUTER) JOIN: აბრუნებს ყველა ხაზს ორივე ცხრილიდან. თუ ემთხვევა, შესაბამის სვეტებში იქნება მნიშვნელობა; თუ არა, იქნებაNULL.CROSS JOIN: აბრუნებს ორი ცხრილის კარტეზიანურ პროდუქტს (ყოველი ხაზის გაერთიანება პირველი და მეორე ცხრილიდან).
სინტაქსი ჩვეულებრივ ასე გამოიყურება:
SELECT სვეტი1, სვეტი2...
FROM ცხრილი1
JOIN ცხრილი2 ON ცხრილი1.საერთო_სვეტი = ცხრილი2.საერთო_სვეტი;
მაგალითი INNER JOIN:
SELECT შეკვეთები.order_id, მომხმარებლები.customer_name
FROM შეკვეთები
INNER JOIN მომხმარებლები ON შეკვეთები.customer_id = მომხმარებლები.customer_id;
მოდით განვიხილოთ მომხმარებლები და შეკვეთები ცხრილები:
მომხმარებლები
| customer_id | customer_name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
შეკვეთები
| order_id | customer_id | amount |
|---|---|---|
| 101 | 1 | 100 |
| 102 | 2 | 150 |
| 103 | 1 | 200 |
| 104 | 4 | 50 |
INNER JOIN-ის შედეგი იქნება:
| order_id | customer_name |
|---|---|
| 101 | Alice |
| 102 | Bob |
| 103 | Alice |
LEFT JOIN-ის შედეგი (შეკვეთები LEFT JOIN მომხმარებლები):
| order_id | customer_id | amount | customer_name |
|---|---|---|---|
| 101 | 1 | 100 | Alice |
| 102 | 2 | 150 | Bob |
| 103 | 1 | 200 | Alice |
| 104 | 4 | 50 | NULL |