您的位置:首页 > 数据库 > MySQL

Mysql删除同一张表的子查询语句

2014-12-09 18:07 465 查看
DELETE
FROM
TBL_NODE
WHERE
parent_node_id IN
(

SELECT
node_id
FROM
tbl_node
WHERE
parent_node_id =12345)
原来的语句如上,在mysql执行会报错如下!

 [DELETE - 0 row(s), 0.000 secs]  [Error Code: 1093, SQL State: HY000]  You can't specify target table 'TBL_NODE' for update in FROM clause

Code: 1093 SQL State: HY000 --- You can't specify target table 'TBL_NODE' for update in FROM clause

... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.000/0.000 sec  [0 successful, 0 warnings, 1 errors]

mysql不支持这种删除。修改为如下即可:

DELETE
FROM
TBL_NODE
WHERE
parent_node_id IN
(
SELECT
*
FROM
(
SELECT
node_id
FROM
tbl_node
WHERE
parent_node_id = 12345 ) AS temp )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐