簡體   English   中英

從一個表中選擇行並插入到另一個表中

[英]selecting row from one table and insert into other table

從表1中選擇表2中不存在的行,並將其插入到表2中

喜歡

圖片

id  type    name
502  1      summer.gif

SEO圖片

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

現在,我要從“ Images表中選擇其ID與idimage SEOImages表不匹配的所有行,並將這些行插入SEOImages表中。

方法:

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

范例:

SQLFiddelDemo

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);
INSERT INTO SeoImages
(IdImage)
SELECT ID
FROM Images
WHERE ID NOT IN (SELECT IDIMAGE FROM SEOImages)

查詢:

SELECT * FROM Images
  WHERE id NOT IN (SELECT idimage FROM SEOImages)

應該從SEOImages中沒有對應ID的Images中帶出那些行,假設它們都是相同類型的。

或者,使用JOIN:

SELECT i.* FROM Images i
    LEFT OUTER JOIN SEOImages s on i.id = s.imageId
WHERE s.imageId IS NULL
INSERT INTO SEOImages
SELECT *
FROM Images
WHERE NOT EXISTS (SELECT 1 
                 FROM Images t1, SEOImages t2 
                 WHERE t1.id=t2.id) ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM