PostgreSQL JOIN turlari


ULASHISH

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!