【发布时间】:2020-12-24 12:58:44
【问题描述】:
我有一个如下表,名为 table1:
+-----------+-------+
| productid | stock |
+-----------+-------+
| 1 | 10 |
| 2 | 20 |
| 3 | 30 |
+-----------+-------+
我需要从另一个名为 table2 的表中插入/更新到上面的表:
+-----+-------+
| PId | stock |
+-----+-------+
| 1 | 20 |
| 2 | 40 |
| 4 | 10 |
+-----+-------+
我想执行以下条件的 SQL 查询:
- 如果 table2 的 PId 存在于 table1 的 Productid 中,则需要更新 stock 的值。
- 如果 table2 中的 PId 不存在于 table1 的 Productid 中,则需要将 stock 的值作为新行插入 table2 中的 table1 中。
所以在table1中执行查询后输出如下:
+-----------+-------+
| productid | stock |
+-----------+-------+
| 1 | 20 |
| 2 | 40 |
| 3 | 30 |
| 4 | 10 |
+-----------+-------+
帮助我获取查询,因为我是 SQL 新手。提前致谢!
【问题讨论】:
-
请标记您正在使用的数据库。您请求的操作通常称为“upsert”,最佳方式因数据库而异。
-
我使用的是 SQL Server 2017
标签: sql join sql-insert sql-server-2017