如何在多个其他表没有共同点时更新 Table 1?

How to update Table 1 from multiple other tables when they have nothing in common?

我有一个主要 table 和另外 3 个 table。这些 table 中的每一个都只有一行。我想用其他 table 中的相应列更新 TableMain 的列。这些 table 没有任何我可以加入的专栏。

create table TableMain(a1 int, a2 int, b1 int, b2 int, c1 int, c2 int)
create table TableA(a1 int, a2 int)
create table TableB(b1 int, b2 int)
create table TableC(c1 int, c2 int)

我有以下的,有效,但看起来很糟糕:

update TableMain
set a1 = (select a1 from TableA),
    a2 = (select a2 from TableA),
    b1 = (select b1 from TableB),
    b2 = (select b2 from TableB),
    c1 = (select c1 from TableC),
    c2 = (select c2 from TableC)

我已经尝试了下面的代码,但我得到的是 NULL,所以这种方法不起作用:

update TableMain
set a1 = ta.a1, a2 = ta.a2, 
    b1 = tb.b1, b2 = tb.b2, 
    c1 = tc.c1, c2 = tc.c2, 
from TableA ta, TableB tb, TableC tc

是否有更优雅的方式来更新这些列?

P.S。我问了一个类似的 ,但它解决了从单个 table.

进行更新的问题

考虑:

UPDATE tm
SET tm.a1 = ta.a1,
    tm.a2 = ta.a2, 
    tm.b1 = tb.b1, 
    tm.b2 = tb.b2, 
    tm.c1 = tc.c1, 
    tm.c2 = tc.c2
FROM TableMain tm
CROSS JOIN TableA ta
CROSS JOIN TableB tb
CROSS JOIN TableC tc