我正在尝试为名为 product_category_parent 的表更新字段(例如 parent_id )。
以下是我尝试使用的查询:
update sub_category_child set name='Mobile Phones', parent_id = (select parent_id from product_category_parent where cname = 'Appliances')
但它返回以下错误
#1064 - 您的SQL语法出错;查看与您的MariaDB服务器版本对应的手册,以获得在')附近使用的正确语法。在第1行
这是数据库架构
table product_category_parent
id cname
----- ----------
1 Electronics
table sub_category_child
id name parent_id
----- -------- -------------
1 Mobile Phone 1
parent_id作为product_category_parent.id的外键
答案 0 :(得分:0)
首先,您可能希望父表中的id
,而不是父表中的parent_id
,对吗?
UPDATE sub_category_child
SET name = 'Mobile Phones',
parent_id = (SELECT id FROM product_category_parent WHERE cname = 'Appliances')
其次,使用此查询,您将更新sub_category_child
表中的所有记录。这是你想要的,还是你错过了WHERE
条款?
第三,如果子查询返回的记录超过1条,则表示存在问题。
您想要选择使用哪一个进行更新(例如ORDER by xx LIMIT 1
),或者更有可能 - 出现问题。
我假设sub_category_child
中的每一行应该只有一个父级,那么找到Mobile Phones
类别的父级的真实条件是什么?