[SQL ] UPDATE中的子查詢
資料庫是用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)