我正在尝试从我的产品表中读取所有 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 表中的现有数据,而不是在尝试添加/插入新行。
最佳答案
我相信您正在寻找更新查询,因为您正在根据一个表与另一个表的关系设置该值。
为此,您可以使用相关列将表JOIN
在一起,并相应地设置值:
UPDATE product_description pd
JOIN product p ON p.product_id = pd.product_id
SET pd.tag = p.sku;
这是一个 SQL Fiddle示例。
关于MySQL INSERT INTO 使用 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31271785/