2011-04-12 4 views
1

한 테이블에서 비어있는 모든 필드를 찾아 다른 테이블의 데이터로 채우려합니다. T1의 COL1에있는 모든 빈 필드를 업데이트 완벽하게 작동다른 테이블의 데이터로 한 테이블의 여러 빈 필드 업데이트

UPDATE t1 SET col1 = (
    SELECT col99 
    FROM t2 
    WHERE t1.product_ID = t2.product_ID 
) WHERE col1 IS NULL 

을 : 여기에 내가 가진 것입니다. 그러나 다른 필드에서 공백을 확인하고 업데이트해야합니다. 나는 그 중 하나가 공백 일 때마다 모든 필드를 업데이트하도록 쿼리를 원하지 않는다. 단지 공백 필드이다. 여러 쿼리를 실행할 수 있지만 더 깨끗하고 좋은 방법이 있다고 상상해보십시오.

감사합니다,

마태 복음

답변

1

시도 :

UPDATE t1 
SET 
    col1 = COALESCE(col1, (SELECT col99 FROM t2 WHERE t1.product_ID = t2.product_ID)), 
    col2 = COALESCE(col2, (SELECT ...)), 
    -- etc. 

이 초기 솔루션보다 더 잘 수행하지 않아야합니다. 몇 가지 대신 하나의 UPDATE 쿼리로 작업을 수행하는 것입니다.

+0

그 트릭을 않습니다. 감사! – MatthewLee

관련 문제