하위 쿼리를 사용하여 PostgreSQL 테이블 행 업데이트
Postgres 데이터베이스에 기존 테이블이 있고 업데이트해야 하는 시나리오를 생각해 보세요. 하위 쿼리에서 얻은 값을 사용하는 행입니다. 이 작업은 간결한 업데이트 문을 사용하여 수행할 수 있습니다.
이 특별한 경우의 목표는 여러 테이블을 조인하는 복잡한 하위 쿼리(cust_original, supp_original 및 Partner_original)에서 검색된 값을 사용하여 더미 테이블의 행을 업데이트하는 것입니다. ) 그리고 조건부 논리를 적용하여 고객, 공급업체 및 파트너 열의 값을 결정합니다.
이 업데이트를 수행하려면 다음 구문:
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 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;
이 문은 하위 쿼리를 활용하여 고객, 공급업체 및 파트너 열의 값을 파생합니다. 하위 쿼리는 제공된 삽입 문에 지정된 대로 필요한 조인과 조건부 논리를 수행합니다.
그런 다음 외부 UPDATE 문은 이러한 하위 쿼리 파생 값을 더미 테이블의 해당 열에 적용하고, address_id 필드입니다.
이 접근 방식은 복잡하거나 동적 계산에서 파생된 값을 기반으로 테이블 행을 업데이트해야 할 때 또는 기존 방식이 사용되지 않는 대규모 데이터 세트로 작업할 때 특히 유용합니다. 행 단위 업데이트는 비효율적일 수 있습니다.
위 내용은 조건부 논리가 포함된 하위 쿼리를 사용하여 PostgreSQL 테이블 행을 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!