MySQL noob在这里。我需要从另外两个人创建产品目录表。表A具有产品重量,表B具有描述。因此,我需要制作一个表C,其中包含权重和描述。
这些目录不同,来自不同的来源,我唯一可以匹配的字段是SKU。
我应该从表A的副本(带有权重)制作表C,然后添加描述列,然后:
update tableC
join tableA on tableB.sku = tableA.sku
set description = tableB.description
答案 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)