【发布时间】:2015-01-15 12:12:07
【问题描述】:
我在数据库中有两个表,结构如下:
表 1:3 行 - category_id、product_id 和 position
表 2:3 行 - category_id、product_id 和 position
我正在尝试将表 1 位置设置为表 2 位置,其中类别和产品 ID 与表中的相同。
下面是我尝试实现但返回 MySQL 错误 1242 的 sql - 子查询返回超过 1 行
UPDATE table1
SET position = (
SELECT position
FROM table2
WHERE table1.product_id = table2.product_id AND table1.category_id = table2.category_id
)
【问题讨论】:
-
尝试单独运行您的 INNER 查询并告诉我们结果
-
我收到以下错误 #1054 - 'where 子句'中的未知列 'table1.product_id'
-
然后我收到 #1052 - 字段列表中的列“位置”不明确
-
这意味着 MYSQL 与
postion混淆是哪个表和来自哪个表...您应该先学习一些 MySQL 教程 -
我在你发布的内部连接中尝试了 table1.position,我现在收到了来自 table1 的所有位置行