更新SQL连接
问题描述:
我有两个表。第一个人拥有empid和managerid,而第二个表具有empid和其他专栏。但是table2没有任何元组。我如何更新table2,以便对于特定的管理员,如果empid不存在,则将其添加到table2中,否则将更新table2的其他字段。更新SQL连接
总之,如何使用连接表来更新没有任何行的表。
我使用这个命令
UPDATE EMPLOYEE_GOAL_TABLE
SET ISGoal1='yes'
FROM EMPLOYEE_TABLE
LEFT OUTER JOIN EMPLOYEE_GOAL_TABLE
ON EMPLOYEE_TABLE.EmployeeID = EMPLOYEE_GOAL_TABLE.EmployeeID
WHERE EMPLOYEE_GOAL_TABLE.EmployeeID IS null.
,但是这说明影响任何行。
答
如果你想在EMPLOYEE_GOAL_TABLE
添加缺少的记录,其中在EMPLOYEE_TABLE
存在记录,那么你需要做一个INSERT
,而不是UPDATE
上EMPLOYEE_GOAL_TABLE
。如果它不存在,则无法更新EMPLOYEE_GOAL_TABLE
中的记录。 (我希望我正确理解您的要求。:))
所以,如果我们的目标是添加缺少的记录,然后做这样的事情...
INSERT INTO EMPLOYEE_GOAL_TABLE (EmployeeID, ISGoal1)
SELECT EMPLOYEE_TABLE.EmployeeID, 'yes'
FROM EMPLOYEE_TABLE
WHERE EMPLOYEE_TABLE.EmployeeID NOT IN
(
SELECT DISTINCT EMPLOYEE_GOAL_TABLE.EmployeeID
FROM EMPLOYEE_GOAL_TABLE
)
+0
非常感谢,它有点解决了我的问题.. – scooby 2011-04-14 10:15:22
答
是您的基本查询返回任何记录?
你怎么得到,当你
SELECT *
FROM EMPLOYEE_TABLE
LEFT OUTER JOIN EMPLOYEE_GOAL_TABLE
ON EMPLOYEE_TABLE.EmployeeID = EMPLOYEE_GOAL_TABLE.EmployeeID
WHERE EMPLOYEE_GOAL_TABLE.EmployeeID IS null
?
怎么样(简体)DDL所以我们可以重新创建数据库的相关部分? – CJM 2011-04-14 08:24:10
可以请详细说明。?我的命令不显示错误。只是它可以更新任何东西。也许因为它已经在table2中有任何行。 – scooby 2011-04-14 08:27:24