Mysql 使用同一表中的值更新表
SQL问题。我将system_id作为partent_id,而不是相应的parent_id,即tables company_id。因此,我尝试了这个方法,但出现了几个错误: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_
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