Junior
SQL Join qanday ishlaydi?
sobes.tech AI
AIdan javob
SQL JOIN ikki yoki undan ortiq jadvallardan satrlarni ularning o'rtasidagi bog'langan ustun asosida birlashtiradi. Bir nechta JOIN turlari mavjud:
INNER JOIN: Ikkala jadvalda ham mos keladigan qiymatlar bo'lgan satrlarni qaytaradi.LEFT (OUTER) JOIN: Chap jadvaldagi barcha satrlarni va o'ng jadvaldagi mos keladigan satrlarni qaytaradi. Agar o'ng jadvalda mos kelish bo'lmasa, o'ng jadval ustunlari uchunNULLqiymatlari qaytariladi.RIGHT (OUTER) JOIN: O'ng jadvaldagi barcha satrlarni va chap jadvaldagi mos keladigan satrlarni qaytaradi. Agar chap jadvalda mos kelish bo'lmasa, chap jadval ustunlari uchunNULLqiymatlari qaytariladi.FULL (OUTER) JOIN: Ikkala jadvaldagi barcha satrlarni qaytaradi. Agar mos kelish bo'lmasa, mos ustunlar uchunNULLqiymatlari qaytariladi.CROSS JOIN: Ikki jadvalning kartesian mahsulotini qaytaradi (birinchi jadvaldan har bir satr ikkinchi jadvaldan har bir satr bilan birlashtiriladi).
Sintaksis odatda quyidagicha:
SELECT ustun1, ustun2...
FROM jadval1
JOIN jadval2 ON jadval1.umumiy_ustun = jadval2.umumiy_ustun;
INNER JOIN misoli:
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
customers va orders jadvallarini ko'rib chiqamiz:
customers
| customer_id | customer_name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
orders
| order_id | customer_id | amount |
|---|---|---|
| 101 | 1 | 100 |
| 102 | 2 | 150 |
| 103 | 1 | 200 |
| 104 | 4 | 50 |
INNER JOIN natijasi:
| order_id | customer_name |
|---|---|
| 101 | Alice |
| 102 | Bob |
| 103 | Alice |
LEFT JOIN natijasi (orders LEFT JOIN customers):
| order_id | customer_id | amount | customer_name |
|---|---|---|---|
| 101 | 1 | 100 | Alice |
| 102 | 2 | 150 | Bob |
| 103 | 1 | 200 | Alice |
| 104 | 4 | 50 | NULL |