2011-12-28 68 views
4

我有三个表,我不知道他们是否都需要使用,但基本上我需要的表A和表C进行比较,如果有一个ID,它是在表A中那不在表C中,则在表C中,ID将与该行中另一个单元中的值一起添加。参阅下面的一个例子:SQL查询 - 表克隆

原始表A:

------------------------- 
Sku | Status 
------------------------- 
ABC | Enabled 
DEF | Enabled 
GHI | Enabled 
JKL | Disabled 
MNO | Enabled 

原始表C:

------------------------- 
Sku | Status 
------------------------- 
ABC | Enabled 
DEF | Enabled 
GHI | Enabled 

查询表C后:

------------------------- 
Sku | Status 
------------------------- 
ABC | Enabled 
DEF | Enabled 
GHI | Enabled 
JKL | Disabled 
MNO | Disabled 
+1

如果表C包含一个记录但具有另一个值? (ABC,禁用),例如? – 2011-12-28 10:23:53

回答

1

这将在MySQL工作:

INSERT INTO b 
SELECT * 
FROM a 
WHERE 
    NOT EXISTS 
    (SELECT * FROM b WHERE b.sku = a.sku); 
1

尼斯问题!!类似的东西 尝试:

INSERT INTO TableC (SELECT * FROM TableA WHERE TableA.id NOT IN (SELECT id FROM TableC)) 
0

不知道如果MySQL支持该语法,但是这也应该工作:

insert into c (sku, status) 
(select sku, status from a where not exists (select null from c where c.sku = a.sku)) 
;