4

table2に存在しないtable1から行を選択し、table2に挿入する

お気に入り

画像

id  type    name
502  1      summer.gif

SEO画像

id      idimage ... ...
1000    501     ... ...

ここで、id が idimageテーブルとImages一致しないテーブルからすべての行を選択し、それらの行をテーブルに挿入したいと考えています。SEOImagesSEOImages

4

4 に答える 4

2
INSERT INTO SeoImages
(IdImage)
SELECT ID
FROM Images
WHERE ID NOT IN (SELECT IDIMAGE FROM SEOImages)
于 2013-07-05T09:17:26.257 に答える
2

アプローチ :

Insert into Table2
select A,B,C,....
  from Table1
 Where Not Exists (select * 
                 from table2 
                where Your_where_clause)

例 :

SQLFiddelデモ

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);
于 2013-07-05T09:17:09.543 に答える
1

クエリ:

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
于 2013-07-05T09:17:18.213 に答える