0

我有 2 张桌子 - 每张桌子只有一行。我想用 Table2 中的相应列更新 Table1 上的 o1 和 o2 列。

create table Table1(c1 int, c2 int, o1 int, o2 int)
create table Table2(o1 int, o2 int)

我有以下内容,这很可怕(但有效)。

update Table1
set o1 = (select o1 from Table2),
    o2 = (select o2 from Table2)

有没有更好的办法?

4

2 回答 2

1

您可以使用:

update table1
    set o1 = t2.o1,
        o2 = t2.o2
from table2 t2;
于 2019-10-02T18:01:00.543 回答
1

通过这种方式,即使有 1 行或 'n' 行,您也可以按预期进行 -

UPDATE T1
SET T1.o1 = T2.o1,
    T1.o2 = T2.o2
from table1 T1 INNER JOIN table2 T2 ON T1.o1=T2.o1 AND T1.o2=T2.o2;
于 2019-10-02T18:04:48.147 回答