首页 > 解决方案 > 避免在 darby sql 中的 INSERT INTO SELECT 查询中使用 multipal 列重复 NOT Exists 不起作用

问题描述

我有两个表,有 4 列,比如

Table h1
----------
ID   Name school home 
1    A    x      11
2    B    y      12
3    C    z      13

Table h2
----------
ID   Name school home 
1    A    x      14
2    B    s      15
3    D    z      16

我想在表 h1 中插入表 h2 数据而不重复检查某些列我只想插入行 id 2 和 3

我试试

使用 NOT EXISTS:不起作用,使用 NOT IN:我只能使用 1 列

标签: mysqlsql

解决方案


为什么NOT EXISTS行不通?在这里你可以去:

INSERT INTO table_h1 (ID, Name, school, home)
    SELECT h2.ID, h2.Name, h2.school, h2.home 
    FROM table_h2 h2
    WHERE NOT EXISTS (SELECT 1 FROM table_h1 h1 WHERE h1.id = h2.id AND h1.Name = h2.Name AND h1.school = h2.school);

推荐阅读