


Bagaimana untuk Mengemas kini Baris Jadual PostgreSQL Menggunakan Subqueries untuk Tetapan Bendera Bersyarat?
Mengemas kini Baris Jadual dalam PostgreSQL Menggunakan Subkueri
Postgres menyediakan keupayaan untuk mengemas kini baris jadual sedia ada menggunakan nilai yang diperoleh daripada subkueri. Ini boleh menjadi sangat bermanfaat untuk senario di mana data perlu diubah suai berdasarkan set data lain yang disimpan dalam pangkalan data.
Pernyataan Masalah:
Anda mempunyai jadual bernama "dummy" dengan pelbagai medan yang mewakili butiran alamat dan bendera pelanggan, pembekal dan rakan kongsi. Objektifnya adalah untuk mengemas kini jadual dengan menetapkan bendera pelanggan, pembekal dan rakan kongsi kepada Betul atau Salah berdasarkan sama ada data padanan wujud dalam jadual "cust_original," "suppl_original" dan "partner_original".
Penyelesaian:
Untuk mencapai ini menggunakan pernyataan kemas kini SQL, anda boleh memanfaatkan Keupayaan subquery PostgreSQL. Pernyataan kemas kini mengambil sintaks berikut:
UPDATE table_name SET field1 = subquery_result1, field2 = subquery_result2, ... FROM (select field1, field2, ... from subquery) AS subquery_name WHERE table_name.id = subquery_name.id;
Dalam konteks masalah khusus anda, pertanyaan kemas kini akan kelihatan seperti ini:
UPDATE dummy SET customer = subquery.customer, supplier = subquery.supplier, partner = subquery.partner FROM (SELECT address_id, CASE WHEN cust.addr1 IS NOT NULL THEN TRUE ELSE FALSE END AS customer, CASE WHEN suppl.addr1 IS NOT NULL THEN TRUE ELSE FALSE END AS supplier, CASE WHEN partn.addr1 IS NOT NULL THEN TRUE ELSE FALSE END AS partner FROM dummy AS pa LEFT OUTER JOIN cust_original AS cust ON (pa.addr1 = cust.addr1 AND pa.addr2 = cust.addr2 AND pa.city = cust.city AND pa.state = cust.state AND SUBSTRING(cust.zip, 1, 5) = pa.zip) LEFT OUTER JOIN supp_original AS suppl ON (pa.addr1 = suppl.addr1 AND pa.addr2 = suppl.addr2 AND pa.city = suppl.city AND pa.state = suppl.state AND pa.zip = SUBSTRING(suppl.zip, 1, 5)) LEFT OUTER JOIN partner_original AS partn ON (pa.addr1 = partn.addr1 AND pa.addr2 = partn.addr2 AND pa.city = partn.city AND pa.state = partn.state AND pa.zip = SUBSTRING(partn.zip, 1, 5)) WHERE pa.address_id = address_id) AS subquery WHERE dummy.address_id = subquery.address_id;
Pernyataan kemas kini berasaskan subkueri ini mengemas kini dengan cekap jadual "dummy" dengan menetapkan bendera pelanggan, pembekal dan rakan kongsi berdasarkan data padanan dalam subkueri, yang melaksanakan gabungan dan kes yang diperlukan penilaian.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Baris Jadual PostgreSQL Menggunakan Subqueries untuk Tetapan Bendera Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)?
