T-SQL:如果不存在则插入

问题描述

我有两个表:

people

| peopleID | Lastname | Firstname |
| -------- | -------- | --------- |
| 1        | Smith    | Marc      |
| 2        | Doe      | John      |
| 3        | Davidson | Terry     |
| 4        | Meyer    | Todd      |
| 5        | Richards | Abe       |

customers

| customerID | Lastname | Company             |
| ---------- | -------- | ------------------- |
| 1          | Davidson | Wonderproducts Inc. |
| 2          | Meyer    | Banana Inc.         |

现在,我想将表people的所有元素插入到表customers中,除了那些姓氏等于customers中姓氏的元素。

因此,customers的结尾应如下所示:

| customerID | Lastname | Company             |
| ---------- | -------- | ------------------- |
| 1          | Davidson | Wonderproducts Inc. |
| 2          | Meyer    | Banana Inc.         |
| 3          | Smith    |                     |
| 4          | Doe      |                     |
| 5          | Richards |                     |

我已经尝试过解决这个问题:

IF NOT EXISTS
  (SELECT 1 FROM customers WHERE Lastname = (SELECT Lastname FROM people))
INSERT INTO customers (Lastname) VALUES (SELECT Lastname FROM people) 

解决方法

尝试一下

INSERT INTO customers (Lastname)
SELECT P.Lastname
FROM people P
    LEFT JOIN customers C ON C.Lastname = P.Lastname
WHERE C.customerID IS NULL

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...