【发布时间】:2018-09-06 04:29:01
【问题描述】:
我编写了一个有效的查询并完成了我想要的,但我不知道为什么逻辑是有效的。我无法分享确切的表格,因为这些信息很敏感,但我会在下面重新创建。
Table_A 有三列:
Employee_ID,
Condition,
B_Confirmed_Flag
Table_B 有两列:
Employee_ID,
Condition
我的目标是编写一个更新语句,只要 Table_B 中存在 Employee_ID -> Condition 组合,就将 Table_A 中的 B_Confirmed_Flag 更新为 1。
更新声明:
UPDATE TABLE_A
SET B_Confirmed_Flag = 1
FROM TABLE_A
WHERE TABLE_A.Condition IN (SELECT TABLE_B.CONDITION
FROM TABLE_B
WHERE TABLE_B.EMPLOYEE_ID = TABLE_A.EMPLOYEE_ID)
此更新语句似乎有效,但我对逻辑感到困惑。我会认为使用此更新语句我会不必要地标记某些行,其中 Table_B 中的多个 Employee_ID 在 Condition 列中具有相同的值。但是,该查询对我有用。
谢谢!
【问题讨论】:
-
什么是主键?
-
@paparazzo employee_ID 是两个表中的主键
标签: sql sql-server sql-update