【发布时间】:2017-11-17 05:29:20
【问题描述】:
SQL 问题。我将 system_id 作为 partent_id 与相应的 parent_id 即表 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 的“set”)SQL 查询:文档
更新 justmarket.companies e,(选择 DISTINCT company_id from justmarket.companies where parent_id = system_id) c set e.parent_id = c.company_id 其中 e.company_id = c.company_id
MySQL 说:文档
1205 - 超过锁定等待超时;尝试重启事务
表: company_id company_name system_id parent_id 1 姓名1 55121 0 2 姓名2 52211 55121 3 姓名3 55444 55121
我想要做什么 company_id company_name system_id parent_id 1 姓名1 55121 0 2 姓名2 52211 1 3 姓名3 55444 1
【问题讨论】:
-
样本数据和期望的结果真的很有帮助。
-
我认为第一个错误是 PhpMyAdmin 中的错误,它不理解多表
UPDATE语法。 -
查看 stackoverflow.com/questions/35608945/… 以获取另一个出现该错误的查询。
-
更新了示例,我使用的是 MySQL 5.6.35