我有一个Table1:
id c a b rc bid
1 12 4 6 35 4
2 12 4 6 67 7
3 12 4 6 88 8
4 23 4 7 49 3
5 23 5 8 59 8
Table2也具有相同的列,但没有bid
列。
一排被认为是重复的,如果它有列的值相同c
,a
和b
。因此,第1、2和3行被视为重复行,因为它们分别具有12、4和6。
我想插入的行Table1
至Table2
那不重复,但只有那些行。也就是说,第1、2和3行不会插入Table2
。仅插入第4行和第5行,因为它们没有重复项。
因此,在插入后,Table2将如下所示:
id c a b rc
1 23 4 7 49
2 23 5 8 59
我知道我可以使用此查询获取哪些行没有重复项:
select distinct c,a,b,count(*) from Table1 group by c,a,b having count(*) > 1
但Table2
由于插入需要指定特定的列,因此无法弄清楚如何将它们插入。
尝试了类似的事情,显然是行不通的:
insert into Table2 (c, a, b, rc) select distinct c,a,b,count(*) from Table1 group by c,a,b having count(*) > 1
您也可以在subselect中不使用
INSERT INTO Table2(c, a, b, rc, bid)
SELECT c, a, b, rc, bid
FROM Table1 t1
WHERE (c,a,b) not in ( SELECT c,a,b
FROM Table1 t2
GROUP BY c, a, b
HAVING COUNT(*) > 1
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句