1

这个以前的问题几乎有我的答案: How to update from select with a Join

该问题的解决方案是:

UPDATE invoiceLine
INNER JOIN terminal
    ON invoiceLine.ctn = terminal.ctn
INNER JOIN network
    ON terminal.network = network.id
SET invoiceLine.network = network.label

我真正想要做的是组合(将 Table2 的数据永久存储在 Table1 中)两个共享一个公共主键的表。Table1 有 49 个字段,而 Table2 有 104 个字段。

如果我想更新超过 100 个字段怎么办?

我是否需要设置 invoiceLine.network = network.label、invoiceLine.item1 = network.item1 等...一直到 invoiceLine.item103 = network.item103?

有没有更简单的方法来连接两个表并将其设置在数据库中?

SELECT *
FROM test2
INNER JOIN test1 ON test1.`API_ID` = test2.`API_ID`

这就是我想要的,除了它没有在 test1 中设置数据。

4

1 回答 1

1

是的,您必须这样做,您也可以执行 INSERT TO ... SELECT (选择可以是许多表的连接)但是您仍然必须定义您的字段,因此在时间上几乎没有收益。重要:插入中需要与选择中相同数量的字段。

INSERT INTO TABLE1 (list, of, fields) SELECT list, of, fields FROM TABLE2;
于 2013-10-23T17:48:29.807 回答