从表A和表B中创建一个匹配的表

时间:2014-10-25 19:26:11

标签: php mysql

MySQL noob在这里。我需要从另外两个人创建产品目录表。表A具有产品重量,表B具有描述。因此,我需要制作一个表C,其中包含权重和描述。

这些目录不同,来自不同的来源,我唯一可以匹配的字段是SKU。

我应该从表A的副本(带有权重)制作表C,然后添加描述列,然后:

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

2 个答案:

答案 0 :(得分:3)

创建另一个表到 copy 并从另外两个表中保存彼此相关的值是一种糟糕的方法。 SQL是一种关系语言;你应该利用它来简单地从两个表中获取两个值:

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

无需创建副本以将两者关联到另一个表中。这是不必要的复杂性。

答案 1 :(得分: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