SQL SELECT 后跟 UPDATE

Posted

技术标签:

【中文标题】SQL SELECT 后跟 UPDATE【英文标题】:SQL SELECT followed by UPDATE 【发布时间】:2013-02-17 11:06:12 【问题描述】:

我有 Employee 表和 HR 表。两个表中都有员工地址(地址列)。我想用 Employee 表中的地址更新 HR 表的地址列,对于所有这些记录,只要 HR 表的地址和同一雇员的 Employee 表的地址不匹配。employee-id 是员工表和外部的主键HR 表中的键。

【问题讨论】:

【参考方案1】:

您仍然可以对 UPDATE 语句执行 JOIN

UPDATE  HR a
        INNER JOIN Employee b
            ON a.EmpID = b.ID  -- relationship column
SET     a.address = b.address
WHERE   a.address <> b.address -- to make this query faster
                               -- filter only those address that didn't match

【讨论】:

谢谢JW。小改变......如果我需要像地址一样说的东西,我还想更新两个表中也存在的“电话号码”列,在发现类似于地址的不匹配时。我们必须将查询中所有对应列的 SET & Where 子句分开,因为地址不匹配不能更新电话号码。

以上是关于SQL SELECT 后跟 UPDATE的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中WHERE后跟着N多个OR条件会怎样。。。

后跟 SELECT LAST_INSERT_ID 时 INSERT 不起作用

带有 Express 的 Knex.js,如何在 knex.commit 后跟 knex.select 查询?

in在sql中是啥意思

oracle 中select /* */ from table语法

oracle——用户