【发布时间】:2016-03-04 18:56:57
【问题描述】:
我有 2 个表格,详细信息如下
表 1
Name | City | Employee_Id
-----------------
Raj | CA | A2345
Diya | IL | A1234
Max | PL | A2321
Anna | TX | A1222
Luke | DC | A5643
表 2
Name | City | Employee_Id | Phone | Age
---------------------------------------
Raj | CA | A2345 | 4094 | 25
Diya | IL | A1234 | 4055 | 19
Max | PL | A2321 | 4076 | 23
如您所见,Employee_Id 是两列中的公共列。我想将表 1 中的所有条目更新到表 2 中。
Raj、Divya 和 Max 已经存在于表 2 中。因此它不应在表 2 中创建重复条目并跳过这 3 个条目,而 Anna 和 Luke 不存在于表 2 中。因此应将其添加为新条目排。
SQL 应该能够合并这 2 列并忽略已经存在的行。决赛桌2必须与此类似。
表 2
Name | City | Employee_Id | Phone | Age
---------------------------------------
Raj | CA | A2345 | 4094 | 25
Diya | IL | A1234 | 4055 | 19
Max | PL | A2321 | 4076 | 23
Anna | TX | A1222 | |
Luke | DC | A5643 | |
有没有办法实现这一点?我对 SQL 很陌生,所以任何输入都会有很大帮助。我阅读了有关合并和更新功能的信息,但我猜合并是在 Transact-SQL 中。还阅读了有关连接的信息,但找不到解决此问题的方法。
【问题讨论】:
-
Sql Server 还是 MySql ?
-
@JuanCarlosOropeza-sql 服务器
-
Raj / OH / A2345怎么样?不允许使用相同的员工 ID 移动或更改姓名?您想要的是重复的员工 ID? -
@JoachimIsaksson- Employee_ID 将是唯一的.. 在插入 table2 之前需要检查此参数。如果 table2 的employee_id 为 A2345,则不会再次插入...
-
如果找到上面提到的行怎么办?使用 table1 中的正确数据更新该行,还是忽略 table1 中的行?
标签: sql-server database join merge rdbms