底部的第二个查询出现以下错误。知道为什么吗?
谢谢
错误: 错误号:1093
You can't specify target table 'menus' for update in FROM clause
作品:
INSERT INTO menus
(name, controller, parent)
VALUES
('A', 'B', (SELECT id FROM menus menus_alias WHERE SHA1(menus_alias.id) = '1'))
两者都不起作用:
UPDATE menus SET
parent = (SELECT id FROM menus menus_alias WHERE SHA1(menus_alias.id) = '1')
WHERE SHA1(id) = '5'
UPDATE menus menus_alias SET
menus_alias.parent = (SELECT id FROM menus WHERE SHA1(id) = '1')
WHERE SHA1(menus_alias.id) = '5'
检查了这些:
- > Mysql error 1093 - Can't specify target table for update in FROM clause
- > mysql - cant specify target table for update in from clause
- > Error (1093):You cant update target table for update in FROM Clause
- > ERROR 1093 (HY000): You can't specify target table 'a' for update in FROM clause
还有一些
最佳答案
使用JOIN
UPDATE menus m1 JOIN menus m2
ON SHA1(m1.id) = '5' AND SHA1(m2.id) = '1'
SET m1.parent = m2.id
关于mysql - 在主 UPDATE 语句的子查询中指定相同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16983087/