WebプログラマのMysqlステップ3のsqlマルチテーブルデータ削除、サブクエリ、連合クエリ


テーブル構造を次のように仮定します.
create table test(
	name varchar(10),
	sex varchar(10)
);
create table test1(
	name varchar(10),
	sex varchar(10)
);

複数のデータを同時に挿入するとします.
insert into test (name,sex) values('xiao','nan'),('xiao1','nan1'),('xiao2','nan2');
insert into test1 (name,sex) values('xiao','nan'),('xiao1','nan1'),('xiao2','nan2');

マルチテーブルデータ削除:xiaoという名前の2つのテーブルのデータを同時に削除する必要があるとします.
delete t,t1 from test t,test1 t1 where t.name=t1.name and t.name='xiao'

もちろん、次のように書くこともできます.
delete t,t1 from test t,test1 t1 where t1.name='xiao' and t.name='xiao'

サブクエリ:テーブルtestでtest 1の同名nameの情報をクエリする必要があると仮定すると、別のクエリの条件としてサブクエリが必要になる場合、コードは次のようになります.
select * from test where name in(select name from test1);

連合クエリー:2つのテーブルの結果をクエリーする必要があると仮定します.つまり、数学的に言われている並列セットであり、重くないと仮定すると、union allです.
select * from test
union all
select *from test1;

結果は重複していない集合になります.重複する場合は、次のようになります.
select * from test
union
select *from test1;