2009-07-29 3 views
33

다른 테이블의 데이터로 mySql 테이블을 업데이트하고 싶습니다.고급 MySql 쿼리 : 다른 테이블의 정보로 테이블 업데이트

두 개의 테이블 인 "사람"과 "비즈니스"가 있습니다. 사람 테이블은 "business_id"컬럼으로 비즈니스 테이블에 링크됩니다. (: 열 표) :

필요한 테이블 구조는 기본 키가 출연한다 사람들 : * business_id, * SORT_ORDER, 이메일 사업 : * business_id, 이메일

나는 비즈니스 테이블 이메일 열을 업데이트하고 싶습니다 이 같은 사람들이 테이블에서 이메일, 뭔가 (내가 여기서 뭔가를 놓치고 알고)로 :

UPDATE business b SET email = (SELECT email from People p where p.business_id = b.business_id AND sort_order = '1') WHERE b.email = ''; 

이 메이크업 감각을합니까? 가능한가?

답변

86
UPDATE business b, people p 
    SET b.email = p.email 
WHERE b.business_id = p.business_id 
    AND p.sort_order = '1' 
    AND b.email = '' 
+0

아주 좋은하지만 내 옆에서 3 초까지 소요 – NineCattoRules

12

주 SORT_ORDER이 INT 인 경우, 다음 사용하지 않는 '1'- 1 사용

UPDATE business b 
JOIN People p 
ON p.business_id = b.business_id 
AND p.sort_order = '1' 
SET b.email = p.email 
WHERE b.email = ''; 
관련 문제