PostgreSQL JOIN turlari
QO‘SHILING
JOIN bandi ikki yoki undan ortiq jadvaldagi satrlarni ular orasidagi tegishli ustun asosida birlashtirish uchun ishlatiladi.
Keling, mahsulotlar jadvalidan tanlovni ko‘rib chiqaylik:
product_id | product_name | category_id
------------+----------------+-------------
33 | Geitost
| 4
34 | Sasquatch
Ale | 1
35 | Steeleye
Stout | 1
36 | Inlagd
Sill |
8
Keyin toifalar jadvalidan tanlovga qarang:
category_id | category_name
-------------+----------------
1 | Beverages
2 | Condiments
3 | Confections
4 | Dairy Products
E’tibor bering, mahsulotlar jadvalidagi kategoriya_id ustuni toifalar jadvalidagi kategoriya_idiga ishora qiladi. Yuqoridagi ikkita jadval o‘rtasidagi munosabat kategoriya_id ustunidir.
Keyin ikkala jadvalda mos qiymatlarga ega yozuvlarni tanlaydigan quyidagi SQL iborasini (JOIN bilan) yaratishimiz mumkin:
Misol
Kategoriya_id ustunidan foydalanib mahsulotlarni toifalarga qo‘shing:
SELECT product_id, product_name, category_name
FROM products
INNER JOIN categories ON products.category_id = categories.category_id;
Misolni ishga tushirish »
Agar biz yuqoridagi mahsulotlar jadvalidan bir xil tanlovni chiqarsak, biz quyidagi natijaga erishamiz:
Natija
product_id
| product_name | category_name
------------+----------------+----------------
33 | Geitost | Dairy Products
34 | Sasquatch Ale | Beverages
35 | Steeleye Stout | Beverages
36 | Inlagd Sill | Seafood
Har xil turdagi ulanishlar
PostgreSQL-dagi qo‘shilishlarning turli xil turlari:
- INNER JOIN: Ikkala jadvalda mos qiymatlarga ega yozuvlarni qaytaradi
- LEFT JOIN: chap jadvaldagi barcha yozuvlarni va o‘ngdagi jadvaldagi mos yozuvlarni qaytaradi
- RIGHT JOIN: O‘ng jadvaldagi barcha yozuvlarni va chap jadvaldagi mos yozuvlarni qaytaradi
- FULL JOIN: Chap yoki o‘ng jadvalda mos keladigan barcha yozuvlarni qaytaradi
- CROSS JOIN: Ikki yoki undan ortiq jadvallarning dekart mahsulotini qaytaradi (birinchi jadvaldagi har bir qatorni ikkinchi jadvalning har bir qatori bilan birlashtiradi)
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
