在两个表,两个列之间选择

时间:2018-08-06 01:06:09

标签: mysql sql join

我试图通过比较每个表中的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;

1 个答案:

答案 0 :(得分:0)

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

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

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