在两个表、两列之间选择

zsohkypk  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(353)

我试图通过比较每个表中的2x列来查找表a中不在表b中的所有记录。我试过各种各样的问题,但我想不通。任何帮助都将不胜感激。
tablea有columna和columndate
表B有columna和columndate
所以我只想看看表A中哪些记录与表B中的两列不匹配。另外,tablea可能有几个匹配的字段,所以我需要将它们分组,使每个匹配在tableb中只有一个条目。是的,我想把新记录插入表B。看起来比预期的要难。
像这样:

select ColumnDate, ColumnA
from TableA 
where 
(( ColumnDate not in (select ColumnDate from TableB) ) 
and ( ColumnA not in (select ColumnA from TableB) ))
group by ColumnA, ColumnDate;
ni65a41a

ni65a41a1#

有两种方法,如果我只想同步两个表,我直接使用 INSERT SELECT .

INSERT INTO TableB (ColumnA, ColumnDate) 
SELECT FROM TableA (ColumnA, ColumnDate) 
ON DUPLICATE KEY UPDATE ColumnDate = ColumnDate

但要小心,tableb上需要有主键或唯一索引,因此引擎只会根据接收表的唯一性/pk插入新行。

相关问题