MySQL INSERT INTO 使用 WHERE 子句

标签 mysql opencart

我正在尝试从我的产品表中读取所有 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/

相关文章:

mysql - 在执行 "php artisan migrate"命令后,我找不到在 homestead 上迁移的数据库(使用sequel pro)

php - MySQL:mysqldump 生成数据库备份

php - 如何在 OpenCart 中创建自定义的 SEO 友好 URL?

wordpress - 主目录中的 Htaccess 与子目录冲突

php - 显示来自 MYSQL PHP 的唯一值

mysql - 适用于带有 SQL 2005 的 Windows Server 2008 R2 的最佳数据库

java - 用户 'User_so' @'10.64.0.148' 的访问被拒绝(使用密码 : YES)

docker - SEO URL 在带有 Docker 的 OpenCart 2.3 中给出 404 错误

php - fatal error : call to undefined function mb_strtolower() in OpenCart

javascript - Uncaught ReferenceError : addFriend is not defined