如果有两个表(A,B),a表中有a,b,c,d四个字段, B表中只有a,b,c三个字段, 如果我需要B表的内容合并到A表中,但有A.a=b.a的情况, A为主键,不允许重复值.具体怎么做.
INSERT INTO A SELECT *,NULL FROM B WHERE NOT EXISTS(SELECT 1 FROM A WHERE A.a=B.a) , 中的1只是返回1,也可以使用*,只是使用NOT EXISTS(SELECT 1 FROM A WHERE A.a=B.a)  比EXISTS(SELECT * FROM A WHERE A.a=B.a) 效率更高。
EXISTS 关键字引入一个子查询时,就相当于进行一次存在测试,简单说就相当于外部查询的 WHERE 子句测试子查询返回的行是否存在。
而INSERT INTO 建立内关联
posted on 2009-10-03 01:44  freedom831215  阅读(223)  评论(0)    收藏  举报