作者LaPass (LaPass)
看板Database
标题[SQL ] UPDATE中的子查询
时间Mon Mar 11 10:08:39 2013
资料库是用MySQL 5.5.27
TABLE link_map
L_id
L_deep
parent
chiled
cut
flag
SQL:
UPDATE link_map
SET cut=1,flag=1
WHERE L_deep=1
AND parent IN
(SELECT p.chiled
FROM link_map p
WHERE p.L_deep=0
AND p.cut=1
AND p.flag=1
)
错误讯息:
#1093 - You can't specify target table 'link_map'
for update in FROM clause
问题:
他说不能在同个SQL中去做选择、UPDATE的动作
那如果要做同样的动作,SQL该怎麽下?
=====
找到了
最後改成这样
UPDATE link_map AS c INNER JOIN link_map AS p ON p.chiled=c.parent
SET c.cut=1,c.flag=1
WHERE p.L_deep=1
AND p.cut=1
AND p.flag=1
http://stackoverflow.com/questions/45494
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.252.126.106
※ 编辑: LaPass 来自: 111.252.126.106 (03/11 11:19)