都几个列啊,列名都什么啊?要不没法写呀
而且不一样的,是A与B只要不一样都插入C里吗?还是只插A里有的,B里无的;或者B里有的,A里无的?
哎我,楼下那大哥,我估计人家用的不是oracle
----补充----
假设三个表都有字段1,字段2两个字段
你要插入的是,A,B都完全不相同的数据
insert into c
select a.字段1,a.字段2 from a,(select a.字段1,a.字段2 from a,b where a.字段1=b.字段1 and a.字段2=b.字段2) as d
where a.字段1<>d.字段1 and a.字段2<>d.字段2
union all
select b.字段1,b.字段2 from a,(select a.字段1,a.字段2 from a,b where a.字段1=b.字段1 and a.字段2=b.字段2) as d
where a.字段1<>d.字段1 and a.字段2<>d.字段2
不知道你什么数据库。
我就简单说一下 Oracle 的例子
Oracle 里面, 有个 MINUS, 用于返回第一个表中有、第二个表中没有的数据
你可以执行
INSERT INTO C
SELECT * FROM A MINUS SELECT * FROM B;
INSERT INTO C
SELECT * FROM B MINUS SELECT * FROM A;
就可以了。
如果你的数据库是 DB2 、 SQL Server 或者 SQLite 或者 PostgreSQL
可以使用 INTERSECT 来 替换掉那个 MINUS
也就是
INSERT INTO C
SELECT * FROM A INTERSECT SELECT * FROM B;
INSERT INTO C
SELECT * FROM B INTERSECT SELECT * FROM A;
create c as select * from a b where a. != b.
inset into C
(select * from A minus select * from B)
union all
(select * from B minus select * from A)
;
commit;