我正在尝试从产品表中读取所有SKU编号,并将其作为标记添加到我的产品说明表中。
以下是我正在使用的查询:
INSERT INTO product_description (tag)
SELECT sku
FROM product p
WHERE p.product_id = pd.product_id; #I don't know where to define pd
这些都不起作用:
INSERT INTO product_description pd (tag)
INSERT INTO product_description (tag) pd
我很难弄清楚应该如何构造WHERE
子句。我需要确保两个表中的产品ID匹配,我也不能给第一个表一个别名。
为了澄清我的问题,我实际上是在尝试更新product_description表中的现有数据,我不是要添加/插入新行。
答案 0 :(得分:4)
我相信您在这里正在寻找更新查询,因为您要根据它与另一个表的关系在一个表中设置值。
为此,您可以使用相关列JOIN
将表格放在一起,并相应地设置值:
UPDATE product_description pd
JOIN product p ON p.product_id = pd.product_id
SET pd.tag = p.sku;
以下是SQL Fiddle示例。
答案 1 :(得分:0)
INSERT INTO product_description (tag)
(SELECT sku
FROM product p
INNER JOIN product_description pd ON p.product_id = pd.product_id
答案 2 :(得分:0)
我试图从产品表中读取所有SKU编号并添加 那些作为标签进入我的产品描述表。
我读到这个想要这样的东西:
INSERT INTO product_description (tag)
SELECT distinct sku
FROM product p;
如果您不想要重复,请确保product_description(tag)
上有唯一的索引/约束。
您不能提供表格的结构,但您可能需要产品ID以及标记:
INSERT INTO product_description (product_id, tag)
SELECT product_id, sku
FROM product p;