Update join

Ushbu qoʻllanmada siz boshqa jadvaldagi qiymatlar asosida jadvaldagi maʼlumotlarni yangilash uchun PostgreSQL UPDATE qoʻshilish sintaksisidan qanday foydalanishni oʻrganasiz.

Baʼzan jadvaldagi maʼlumotlarni boshqa jadvaldagi qiymatlar asosida yangilashingiz kerak boʻladi. Bunday holda siz PostgreSQL UPDATE qo'shilish sintaksisidan quyidagi tarzda foydalanishingiz mumkin:

UPDATE t1
SET t1.c1 = new_value
FROM t2
WHERE t1.c2 = t2.c2;

UPDATE bayonida boshqa jadvalga qoʻshilish uchun siz FROM bandida birlashtirilgan jadvalni belgilaysiz va WHERE bandida birlashma shartini taqdim etasiz. FROM bandi SET bandidan keyin darhol paydo bo'lishi kerak.

t1 jadvalining har bir qatori uchun UPDATE operatori t2 jadvalining har bir qatorini tekshiradi. Agar t1 jadvalining c2 ustunidagi qiymat t2 jadvalining c2 ustunidagi qiymatga teng bo'lsa, UPDATE operatori t1 jadvalining c1 ustunidagi qiymatni yangi qiymatni (new_value) yangilaydi.

PostgreSQL UPDATE JOIN misoli

Keling, PostgreSQL UPDATE qo'shilishi qanday ishlashini tushunish uchun misolni ko'rib chiqaylik. Namoyish uchun quyidagi ma'lumotlar bazasi jadvallaridan foydalanamiz:

output

Birinchidan, mahsulot segmentlarini, jumladan, katta hashamat, hashamat va massani saqlaydigan product_segment deb nomlangan yangi jadval yarating.

product_segment jadvalida discount ustuni mavjud boʻlib, unda maʼlum segmentga asoslangan chegirma foizi saqlanadi. Misol uchun, grand luxury segmentiga ega mahsulotlar 5% chegirmaga ega, hashamatli va ommaviy mahsulotlar mos ravishda 6% va 10% chegirmalarga ega.

Ikkinchidan, mahsulot ma'lumotlarini saqlaydigan product nomli boshqa jadval yarating. product jadvalida segmentlar jadvalining idiga bog'langan segment_id tashqi kalit ustuni mavjud.

Uchinchidan, har bir mahsulotning sof narxini mahsulot segmentidagi chegirma asosida hisoblashingiz kerak, deylik. Buning uchun siz UPDATE qo'shilish bayonotini quyidagicha qo'llashingiz mumkin:

So'rovni quyidagicha qisqartirish uchun jadval taxalluslaridan foydalanishingiz mumkin:

Ushbu bayonot product jadvalini product_segment jadvaliga birlashtiradi. Ikkala jadvalda ham mos keladigan bo'lsa, product_segment jadvalidan chegirma oladi, quyidagi formula asosida sof narxni hisoblab chiqadi va net_price ustunini yangilaydi.

Quyidagi SELECT bayonoti yangilanishni tekshirish uchun product jadvali ma'lumotlarini oladi:

output

Ko'rib turganingizdek, net_price ustuni to'g'ri qiymatlar bilan yangilangan.

Ushbu qo'llanmada siz boshqa jadvaldagi qiymatlar asosida jadvaldagi ma'lumotlarni yangilash uchun PostgreSQL UPDATE qo'shilish bayonotidan qanday foydalanishni o'rgandingiz.

© postgresqltutorial.com

Last updated

Was this helpful?