multi-delete with subselects (SCRUM)
mysql-test/r/subselect.result: Multi-delete with subselect test mysql-test/t/subselect.test: Multi-delete with subselect test sql/sql_parse.cc: multi-delete with subselects
This commit is contained in:
parent
8079acf080
commit
9ee2cee69a
@ -353,6 +353,33 @@ a b
|
||||
0 10
|
||||
1 11
|
||||
drop table t1, t2;
|
||||
drop table if exists t11, t12, t2;
|
||||
create table t11 (a int NOT NULL, b int, primary key (a));
|
||||
create table t12 (a int NOT NULL, b int, primary key (a));
|
||||
create table t2 (a int NOT NULL, b int, primary key (a));
|
||||
insert into t11 values (0, 10),(1, 11),(2, 12);
|
||||
insert into t12 values (33, 10),(22, 11),(2, 12);
|
||||
insert into t2 values (1, 21),(2, 12),(3, 23);
|
||||
select * from t11;
|
||||
a b
|
||||
0 10
|
||||
1 11
|
||||
2 12
|
||||
select * from t12;
|
||||
a b
|
||||
33 10
|
||||
22 11
|
||||
2 12
|
||||
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t2 where t11.a = t2.a);
|
||||
select * from t11;
|
||||
a b
|
||||
0 10
|
||||
1 11
|
||||
select * from t12;
|
||||
a b
|
||||
33 10
|
||||
22 11
|
||||
drop table t11, t12, t2;
|
||||
CREATE TABLE t1 (x int);
|
||||
create table t2 (a int);
|
||||
insert into t2 values (1);
|
||||
|
@ -226,6 +226,21 @@ delete from t1 where b = (select b from t2 where t1.a = t2.a);
|
||||
select * from t1;
|
||||
drop table t1, t2;
|
||||
|
||||
#multi-delete with subselects
|
||||
drop table if exists t11, t12, t2;
|
||||
create table t11 (a int NOT NULL, b int, primary key (a));
|
||||
create table t12 (a int NOT NULL, b int, primary key (a));
|
||||
create table t2 (a int NOT NULL, b int, primary key (a));
|
||||
insert into t11 values (0, 10),(1, 11),(2, 12);
|
||||
insert into t12 values (33, 10),(22, 11),(2, 12);
|
||||
insert into t2 values (1, 21),(2, 12),(3, 23);
|
||||
select * from t11;
|
||||
select * from t12;
|
||||
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t2 where t11.a = t2.a);
|
||||
select * from t11;
|
||||
select * from t12;
|
||||
drop table t11, t12, t2;
|
||||
|
||||
#insert with subselects
|
||||
CREATE TABLE t1 (x int);
|
||||
create table t2 (a int);
|
||||
|
@ -2095,10 +2095,12 @@ mysql_execute_command(THD *thd)
|
||||
/* Fix tables-to-be-deleted-from list to point at opened tables */
|
||||
for (auxi=(TABLE_LIST*) aux_tables ; auxi ; auxi=auxi->next)
|
||||
auxi->table= auxi->table_list->table;
|
||||
fix_tables_pointers(&lex->select_lex);
|
||||
if (!thd->fatal_error && (result= new multi_delete(thd,aux_tables,
|
||||
table_count)))
|
||||
{
|
||||
res= mysql_select(thd,tables,select_lex->item_list,
|
||||
res= mysql_select(thd,select_lex->get_table_list(),
|
||||
select_lex->item_list,
|
||||
select_lex->where,
|
||||
(ORDER *)NULL,(ORDER *)NULL,(Item *)NULL,
|
||||
(ORDER *)NULL,
|
||||
|
Loading…
x
Reference in New Issue
Block a user