table2に存在しないtable1から行を選択し、table2に挿入する
お気に入り
画像
id type name
502 1 summer.gif
SEO画像
id idimage ... ...
1000 501 ... ...
ここで、id が idimageテーブルとImages
一致しないテーブルからすべての行を選択し、それらの行をテーブルに挿入したいと考えています。SEOImages
SEOImages
table2に存在しないtable1から行を選択し、table2に挿入する
お気に入り
画像
id type name
502 1 summer.gif
SEO画像
id idimage ... ...
1000 501 ... ...
ここで、id が idimageテーブルとImages
一致しないテーブルからすべての行を選択し、それらの行をテーブルに挿入したいと考えています。SEOImages
SEOImages
INSERT INTO SeoImages
(IdImage)
SELECT ID
FROM Images
WHERE ID NOT IN (SELECT IDIMAGE FROM SEOImages)
アプローチ :
Insert into Table2
select A,B,C,....
from Table1
Where Not Exists (select *
from table2
where Your_where_clause)
例 :
Create table Images(id int,
type int,
name varchar(20));
Create table SEOImages(id int,
idimage int);
insert into Images values(502,1,'Summer.gif');
insert into Images values(503,1,'Summer.gif');
insert into Images values(504,1,'Summer.gif');
insert into SEOImages values(1000,501);
insert into SEOImages values(1000,502);
insert into SEOImages values(1000,503);
insert into SEOImages
select 1000,id
from Images I
where not exists (select *
from SEOImages
where idimage =I.id);
クエリ:
SELECT * FROM Images
WHERE id NOT IN (SELECT idimage FROM SEOImages)
両方が同じタイプであると仮定して、SEOImages に対応する ID を持たないイメージからそれらの行を引き出す必要があります。
または、JOIN を使用します。
SELECT i.* FROM Images i
LEFT OUTER JOIN SEOImages s on i.id = s.imageId
WHERE s.imageId IS NULL