2009-11-06 4 views
2

두 개의 테이블 세부 정보 하나와 다른 하나는 c_details라고합니다. 두 테이블은 정확한 다른 테이블 이름 다른 행에서 포스트 그레스 행 업데이트

아니, 난이 테이블

모두에서 데이터가있는 행이 c_details

예에서 행과 세부 행을 업데이트 할 수 있나요

을 제외하고 동일합니다.

업데이트 세부 정보 SET (Select * from c_details)?

답변

3

당신의 업데이트가 명시 적으로 열 목록을 설명 할뿐만 아니라, 열쇠는 두 테이블 사이의 열하였습니다.

다른 테이블에서 하나의 테이블을 업데이트하는 구문은 PostgreSQL 설명서의 UPDATE chapter에 자세히 설명되어 있습니다. 당신이 SELECT에서 업데이트 및 집계 함수 (MIN)을 기반으로 필드를 설정해야하는 경우

UPDATE 
    details 
SET 
    name = c.name, 
    description = c.description 
FROM 
    c_details AS c 
WHERE 
    c.id=details.id; 
1

사용이 SQL 쿼리는 :

INSERT INTO details SELECT * FROM c_details 
3

다음 다음 SQL 읽어야합니다

UPDATE 
    details 
SET 
    name = (
    SELECT 
     MIN(c.create_at) 
    FROM 
     c_details AS c 
    WHERE 
     c.type = 4 
) 
WHERE 
    c.id = details.id; 
+1

이 세부 사항 및 세부 사항 및 c_details가 같은 경우에도 작동 표. – Sameer