2014-10-25 2 views
0

입니다. 두 가지 다른 제품 카탈로그 테이블을 만들어야합니다. 표 A에는 제품 무게가 있고 표 B에는 설명이 있습니다. 그래서 나는 무게와 설명이 담긴 표 C를 만들어야합니다.표 A와 표 B에서 표를 만드십시오. 여기에서 일치하는 항목은

이 카탈로그는 다른 출처와는 다르며 일치시킬 수있는 유일한 필드는 SKU입니다.

난 (중량) 표 A의 복사본 표 C을해야하고 다음으로, 본 컬럼을 추가

update tableC 
join tableA on tableB.sku = tableA.sku 
set description = tableB.description 
+0

물론! 아니면 SELECT ... JOIN을 사용할 수 있습니다. –

+0

'tablea'의'sku' 값이'tableb'에도 ​​존재합니까, 아니면'union' 결과가 필요합니까 (일부 skus는 가중치가 있고 어떤 것은 설명이 있습니다)? – sgeddes

+0

안녕하세요 sgeddes, 감사합니다 - 일부에는 무게가 있고 일부에는 설명이 있습니다. 두 가지 모두 SKU가 있습니다. 이것이 내 유일한 열쇠입니다. –

답변

3

다른 테이블 작성 로부터 서로 관련된 값을 복사 유지하도록 두 개의 다른 테이블은 좋지 않은 접근법입니다. SQL은 관계형 언어입니다. 당신은 단순히 두 테이블에서 두 값을 얻기 위해 활용해서는 안 :

SELECT 
    tableA.weight 
, tableB.description 
FROM tableA 
LEFT JOIN tableB on tableB.sku = tableA.sku 

완전히 다른 테이블에있는 두 개의 관련하는 복사본을 생성 할 필요가 있습니다. 그것은 불필요한 복잡성입니다.

+0

감사합니다. 나는 그것이 제 3의 테이블을 만들고 있다고 말하려고합니다. 왜냐하면 그 테이블은 프로덕션 하나이기 때문에, 다른 두 테이블은 원격으로 야간에 잡혀 있기 때문입니다. 그래도 고칠 필요가있어. 고마워. –

0

어쩌면

INSERT INTO 
    TableC (`weight`,`desc`) 
SELECT 
    TableA.weight, TableB.desc 
FROM 
    TableA 
    INNER JOIN 
     TableB ON TableA.id = TableB.id; 

?

(http://dev.mysql.com/doc/refman/5.0/en/insert-select.html 참조)

+0

user3476487 id 또는 sku를 의미합니까? sku는 나의 유일한 매치 필드입니다. –

+0

물론 sku를 사용할 수 있습니다. 아이디어 - 제품별로 "tableA"및 "tableB"의 레코드를 비교합니다. 다른 ID 및 동일한 SKU 필드 (미안, 생각하지 않음)가있는 경우이를 사용할 수 있습니다. – user3476487