LEFT JOIN
Last updated
Last updated
Ushbu qo'llanmada siz bir nechta jadvallardan ma'lumotlarni tanlash uchun PostgreSQL LEFT JOIN
bandidan qanday foydalanishni o'rganasiz.
Aytaylik, sizda ikkita jadval mavjud: A va B.
A
jadvalidagi har bir satr B
jadvalidagi nol yoki bir nechta mos qatorlarga ega bo'lishi mumkin, B
jadvalidagi har bir satr esa A jadvalidagi bitta va faqat bitta mos qatorga ega .
Ushbu jadvaldan ma'lumotlarni tanlash uchun, agar B
jadvalida tegishli satrlar bo'lmasligi mumkin yoki bo'lmasligi mumkin, siz LEFT JOIN
foydalanasiz.
Quyidagi bayonot A
jadvalini B
jadvali bilan birlashtiruvchi LEFT JOIN
sintaksisini ko'rsatadi:
Jadvalni A jadval B jadvali bilan chap birlashma yordamida birlashtirish uchun siz quyidagi amallarni bajaring:
Birinchidan, ikkala jadvaldagi SELECT
bandidagi ma'lumotlarni tanlamoqchi bo'lgan ustunlarni belgilang.
Ikkinchidan, FROM
bandida chap jadvalni (jadval A) belgilang.
Uchinchidan, LEFT JOIN
bandida o'ng jadvalni (jadval B) va ON kalit so'zidan keyin qo'shilish shartini belgilang.
LEFT JOIN
bandi chap jadvaldan ma'lumotlarni tanlashni boshlaydi. Chapdagi jadvaldagi har bir satr uchun pka
ustunidagi qiymatni o'ng jadvaldagi fka
ustunidagi har bir satrning qiymati bilan taqqoslaydi.
Agar bu qiymatlar teng bo'lsa, chap qo'shilish bandi SELECT
bandida paydo bo'ladigan ustunlarni o'z ichiga olgan yangi qator yaratadi va bu qatorni natijalar to'plamiga qo'shadi.
Agar bu qiymatlar teng bo'lmasa, chap qo'shilish bandi SELECT
bandida paydo bo'ladigan ustunlarni o'z ichiga olgan yangi qatorni ham yaratadi. Bundan tashqari, u o'ng jadvaldan keladigan ustunlarni NULL
bilan to'ldiradi.
Quyidagi Venn diagrammasi
LEFT JOIN
bandi qanday ishlashini ko'rsatadi:
E'tibor bering, u LEFT JOIN
LEFT OUTER JOIN
deb ham ataladi.
LEFT JOIN
misollariKeling, namunaviy ma'lumotlar bazasidan quyidagi filmva inventory jadvallarni ko'rib chiqaylik.
Film
jadvalidagi har bir qatorda inventory
jadvalidagi nol yoki ko'p qatorlar bo'lishi mumkin. inventory
jadvalidagi har bir qatorda film
jadvalida bitta va faqat bitta qator mavjud.
film_id
ustuni film
va inventory
jadvallari o'rtasidagi aloqani o'rnatadi.
Quyidagi ibora film
jadvalini inventory
jadvaliga qo'shish uchun LEFT JOIN
bandidan foydalanadi:
Film
jadvalidagi qatorda inventory
jadvalida mos keladigan qator bo'lmasa, ushbu qatorning inventory_id
ustunining qiymati NULL
bo'ladi.
Quyidagi bayonotda inventory
da bo'lmagan filmlarni topish uchun WHERE
bandi qo'shiladi:
Quyidagi bayonot bir xil natijani qaytaradi. Farqi shundaki, u so'rovni yanada ixcham qilish uchun jadval taxalluslari
dan foydalanadi:
Agar ikkala jadval ham ON
bandida bir xil ustun nomiga ega bo'lsa, siz USING
sintaksisidan quyidagi tarzda foydalanishingiz mumkin:
Ushbu uslub bitta jadvaldan boshqa jadvalda mos bo'lmagan qatorlarni tanlashni xohlaganingizda foydalidir.
Ushbu qo'llanmada siz boshqa jadvallarda mos keladigan yoki bo'lmasligi mumkin bo'lgan bir jadvaldan qatorlarni tanlash uchun PostgreSQL LEFT JOIN
bandidan qanday foydalanishni o'rgandingiz.