Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich PostgreSQL-Zeilen mit Werten aus einer Unterabfrage?
PostgreSQL-Tabellenzeilen mithilfe von Unterabfragen aktualisieren
Um vorhandene Zeilen in einer PostgreSQL-Tabelle mithilfe von Werten zu aktualisieren, die von einer Unterabfrage zurückgegeben werden, können Sie Folgendes verwenden Syntax:
UPDATE table_name SET column_name = subquery.column_name FROM (SELECT ...) AS subquery WHERE table_name.id = subquery.id;
Betrachten Sie die Beispieltabelle als Dummy vorausgesetzt:
CREATE TABLE public.dummy ( address_id SERIAL, addr1 character(40), addr2 character(40), city character(25), state character(2), zip character(5), customer boolean, supplier boolean, partner boolean ) WITH ( OIDS=FALSE );
Um die Kunden-, Lieferanten- und Partnerspalten basierend auf den von einer SELECT-Anweisung zurückgegebenen Werten zu aktualisieren, können Sie die folgende Syntax verwenden:
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 address 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 CAST(cust.zip AS VARCHAR(5)) = CAST(pa.zip AS VARCHAR(5))) 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 CAST(pa.zip AS VARCHAR(5)) = CAST(CAST(suppl.zip AS VARCHAR(25)) AS VARCHAR(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 CAST(pa.zip AS VARCHAR(5)) = CAST(CAST(partn.zip AS VARCHAR(25)) AS VARCHAR(5)))) AS subquery WHERE dummy.address_id = subquery.address_id;
Diese Abfrage führt Folgendes aus Folgende Operationen:
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich PostgreSQL-Zeilen mit Werten aus einer Unterabfrage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!