日期:2014-05-18  浏览次数:20454 次

向带有主键的表中插入指定数据!
如题,要将tbl1中的某些列的数据插入到tbl2中
我使用的语句如下:
INSERT INTO tbl2 (name, bm)
SELECT cn,num
FROM tbl1
where isnull like 'yes'


现在呢 tbl2中的name列是主键,如果插入的数据已经出现在tbl2中了,那么tbl1中的所有数据都不能插入到tbl2了

我想实现的是tbl1中重复的数据不插入,不重复的可以插入

如何实现呢?
谢谢

------解决方案--------------------
INSERT INTO tbl2 (name, bm)
SELECT cn,num
FROM tbl1
where (isnull like 'yes') and not exists(select 1 from tbl2 where name=tbl1.name)
------解决方案--------------------
如果 not exists not in之类的你怕效率上有问题,可以使用left join 之类的联查。