gpt4 book ai didi

甲骨文更新问题

转载 作者:行者123 更新时间:2023-12-02 07:53:47 24 4
gpt4 key购买 nike

下面描述的更新能否在一条UPDATE语句中完成?

我想通过加入 Users.name = Operators.op_nameOperators.name_id 值更新为 Users.name_id 值。 Users.nameOperators.op_name 都有一个unique

我知道下面描述的情况不遵循“最佳实践”,但它是我正在尝试做的事情的一个更简单的例子:即用另一个连接表中的值更新一个字段。

Table: Users
user_id name
----------------
34 Billy
43 Jimmy
50 Joe

Table: Operators (before UPDATE)
op_id op_name user_id
-------------------------
12 Billy 35
35 Jimmy 46
33 Joe 99


Table: Operators (after UPDATE)
op_id op_name name_id
-------------------------
12 Billy 34
35 Jimmy 43
33 Joe 50

最佳答案

UPDATE   operators o
SET user_id =
(
SELECT u.user_id
FROM users u
WHERE o.op_name = u.name
)
WHERE o.op_name IN
(
SELECT name
FROM users
)

Oracle 10g 中,效率更高:

MERGE
INTO operators o
USING users u
ON (u.name = o.op_name)
WHEN MATCHED THEN
UPDATE
SET user_id = u.user_id

关于甲骨文更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2119049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com