You can't specify target table 't' for update in FROM clause
2016-11-30 10:51
344 查看
今天写mysql删除重复语句的时候,报了这个错误You can't specify target table 't' for update in FROM clause。
1、我的表结构是这样的,
CREATE TABLE `tdb_goods` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、插入表数据
INSERT INTO `test`.`tdb_goods` (`id`, `name`) VALUES ('1', 'A');
INSERT INTO `test`.`tdb_goods` (`id`, `name`) VALUES ('2', 'A');
INSERT INTO `test`.`tdb_goods` (`id`, `name`) VALUES ('3', 'B');
INSERT INTO `test`.`tdb_goods` (`id`, `name`) VALUES ('4', 'B');
3、查询语句:
DELETE t
FROM
`tdb_goods` t
WHERE
t.id IN (
SELECT
a.id
FROM
tdb_goods a,
tdb_goods b
WHERE
a. NAME = b. NAME
AND a.id > b.id
)
4、报错
5、解决方法
在in 语句里面再套一层查询
DELETE t
FROM
`tdb_goods` t
WHERE
t.id IN (
SELECT
t.id
FROM
(
SELECT
a.id
FROM
tdb_goods a,
tdb_goods b
WHERE
a. NAME = b. NAME
AND a.id > b.id
) t
)
1、我的表结构是这样的,
CREATE TABLE `tdb_goods` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、插入表数据
INSERT INTO `test`.`tdb_goods` (`id`, `name`) VALUES ('1', 'A');
INSERT INTO `test`.`tdb_goods` (`id`, `name`) VALUES ('2', 'A');
INSERT INTO `test`.`tdb_goods` (`id`, `name`) VALUES ('3', 'B');
INSERT INTO `test`.`tdb_goods` (`id`, `name`) VALUES ('4', 'B');
3、查询语句:
DELETE t
FROM
`tdb_goods` t
WHERE
t.id IN (
SELECT
a.id
FROM
tdb_goods a,
tdb_goods b
WHERE
a. NAME = b. NAME
AND a.id > b.id
)
4、报错
5、解决方法
在in 语句里面再套一层查询
DELETE t
FROM
`tdb_goods` t
WHERE
t.id IN (
SELECT
t.id
FROM
(
SELECT
a.id
FROM
tdb_goods a,
tdb_goods b
WHERE
a. NAME = b. NAME
AND a.id > b.id
) t
)
相关文章推荐
- mysql中You can’t specify target table for update in FROM clause错误解决方法
- mysql中You can’t specify target table for update in FROM clause错误解决方法
- Mysql 错误 Code: 1093. You can't specify target table for update in FROM clause
- mysql中You can’t specify target table for update in FROM clause错误解决方法
- mysql 出现You can't specify target table for update in FROM clause错误的解决方法
- [Err] 1093 - You can't specify target table 'image' for update in FROM clause
- MySQL数据库update更新子查询[Err] 1093 - You can't specify target table 'text' for update in FROM clause
- mysql中You can’t specify target table for update in FROM clause错误解决方法
- You can't specify target table 'tableName' for update in FROM clause
- mysql中You can’t specify target table for update in FROM clause错误解决方法
- mysql中You can't specify target table for update in FROM clause错误 转
- MySQL报错“ you can't specify the target table for ‘update’ in from clause”
- [Err] 1093 - You can't specify target table 'table' for update in FROM clause处理
- mysql中的一个特殊问题:You can’t specify target table ‘abc’ for update in FROM clause
- mysql 一个较特殊的问题:You can't specify target table 'wms_cabinet_form' for update in FROM clause
- mysql Error Code: 1093. You can't specify target table 'base_extend' for update in FROM clause 0.001
- [Django](1093, "You can't specify target table 'fee_details_invoices' for update in FROM clause") 错误
- mysql中You can’t specify target table for update in FROM clause错误解决方法
- mysql中You can't specify target table for update in FROM clause错误
- [Err] 1093 - You can't specify target table 's' for update in FROM clause