mysql - SQL:只插入新记录

标签 mysql sql ms-access-2007

这一定很微不足道,但我似乎找不到解决方案。

我使用两个表,它们都没有任何主键。

我只想将第一个表的所有记录添加到第二个表中,如果它们不存在。

基本上:

INSERT INTO Table2
SELECT Table1.*
FROM Table
WHERE "the record to be added doesn't already exists in Table2"

最佳答案

你可以这样做。您需要检查每个相关的列 - 我刚刚将 2 作为示例。使用 Not Exists 子句,您可以检查记录是否已存在于多个列中。使用 NOT IN,您将只能检查某一列的记录是否已存在。

INSERT INTO Table2
SELECT t1.*
FROM Table1 t1
WHERE NOT EXISTS 
(
      SELECT 1 
      FROM table2 t2 WHERE 
      t2.col1 = t1.col1 AND 
      t2.col2 = t1.col2
) 

关于mysql - SQL:只插入新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26303247/

相关文章:

php - 如何修复: Error- No database selected

mysql - 在数据库中存储 100K 个不同的表

SQL Server 计算给出了意外的结果

sql - 将现有 SQL 转换为按列透视

vba - 如何在启动Access 2007 时强制用户处理安全警告?

email - 将电子邮件地址传递给 VBA 中的 SendObject 方法

popup - 通过弹出子表单 (2) 添加新子表单 (1) 记录后重新查询子表单 (1) - Access 2007

php - 排序规则 "latin1_swedish_ci"中数据库的回显导致网页上出现问号符号

php - Spry 选项卡式面板不显示动态数据

java - 通过 JDBC 查询 Oracle DB 给出 null,而直接查询给出输出