Mysql 使用同一表中的值更新表

Mysql 使用同一表中的值更新表,mysql,sql,select,Mysql,Sql,Select,SQL问题。我将system_id作为partent_id,而不是相应的parent_id,即tables company_id。因此,我尝试了这个方法,但出现了几个错误: update justmarket.companies e, (Select DISTINCT company_id from justmarket.companies where parent_id = system_id) c set e.parent_id = c.company_id where e.company_

SQL问题。我将system_id作为partent_id,而不是相应的parent_id,即tables company_id。因此,我尝试了这个方法,但出现了几个错误:

update justmarket.companies e, (Select DISTINCT company_id from justmarket.companies where parent_id = system_id) c
set e.parent_id = c.company_id
where e.company_id = c.company_id
结束错误:

错误静态分析:

分析中发现6处错误

需要一个表达式。在位置31附近 代币在位置31附近发现了一个新的语句,但没有找到 它和上一个之间的分隔符。在位置附近选择 32意外令牌。在112号位置附近。 在位置114的c附近发现了一条新语句,但没有分隔符 在它和前一个之间。在位置117附近设置SQL 查询:文件

更新justmarket.companys e,从中选择不同的公司id justmarket.companys其中parent\u id=system\u id c设置e.parent\u id= c、 公司id,其中e.company\u id=c.company\u id

MySQL说:文档

1205-超过锁定等待超时;尝试重新启动事务 表: 公司id公司名称系统id父公司id 1姓名1 55121 0 2姓名2 52211 55121 3姓名3 55444 55121

我想做什么 公司id公司名称系统id父公司id 1姓名1 55121 0 2姓名2 52211 1 3 Name3 55444 1

在不使用子查询的情况下尝试使用显式联接语法

UPDATE companies AS e
JOIN companies AS c ON e.company_id = c.company_id
SET e.parent_id = c.company_id
WHERE c.parent_id = c.system_id

示例数据和期望的结果将非常有用。我认为第一个错误是PhpMyAdmin中的错误,它不理解多表更新语法。请参阅获取该错误的另一个查询。使用示例更新,我使用的是MySQL 5.6.35