2011-11-14 50 views
0

我有一个用户表和工资表。所以无论何时为用户创建工资核算ID,都将在工资表中更新(payroll.payrollID)。更新table1.col2 = table2.col2当table2.col2中的值发生变化时

我们可以把这个值插入user.payrollID。我正在使用传统的java-JDBC程序进行定期更新。

UPDATE user 
SET payrollID = (SELECT payrollID 
        FROM payroll 
        WHERE payroll.userID = user.userID) 
WHERE user.payrollID IS NULL 
AND EXISTS(SELECT payrollID 
        FROM payroll 
        WHERE payroll.userID = user.userID) 

注意:我无权访问工资计划。所以我不能就工资计算程序的任何程序级别更改为插入2个表

+0

我不知道这是你在想什么。但是触发器呢? –

回答

2
UPDATE u 
    Set payrollID = p.payrollID 
FROM User u 
INNER JOIN Payroll p ON p.userID = u.userID 
WHERE u.payrollID IS NULL 

记住更新语句可以使用from子句中使用的表的别名和或任何连接。

最后,我会建议创建一个触发器来处理此更新。

相关问题