我试图通过比较每个表中的2x列来查找TableA中不在TableB中的所有记录。我已经尝试过各种查询,但我无法弄清楚。任何帮助将不胜感激。
TableA具有ColumnA和ColumnDate
TableB具有ColumnA和ColumnDate
因此,我只想查看TableA中哪些记录与两列的TableB不匹配。 另外,TableA可能有几个匹配字段,因此我需要将它们分组以使每个匹配项在TableB中只有1个条目。 是的,我想将新记录插入到TableB中。 似乎比预期的要难。
类似这样的东西:
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;
答案 0 :(得分:0)
有两种方法,如果我只想同步两个表,则使用直接INSERT SELECT
。
INSERT INTO TableB (ColumnA, ColumnDate)
SELECT FROM TableA (ColumnA, ColumnDate)
ON DUPLICATE KEY UPDATE ColumnDate = ColumnDate
但要小心,您需要在 TableB 上具有主键或唯一索引,因此引擎只会根据接收表的唯一性/ pk插入新行。