SQL查询 - 表克隆

时间:2011-12-28 10:18:40

标签: mysql

我有三个表,我不知道它们是否都需要使用,但基本上我需要比较表A和表C,如果表A中有一个不在表C中的ID然后在表C中,ID将与该行中另一个单元格中的值一起添加。请参阅下面的示例:

原表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

3 个答案:

答案 0 :(得分:1)

好问题!! 尝试使用类似的东西:

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

答案 1 :(得分:1)

这适用于MySQL:

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

答案 2 :(得分:0)

不确定mysql是否支持这种语法,但这也应该有效:

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