加入并设置两个表

时间:2013-10-23 17:42:01

标签: mysql sql sql-server

以前的问题几乎都有我的答案: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

我真正想要做的是将两个共享公共主键的表组合(永久存储Table1中的Table2数据)。表1有49个字段,而表2有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中设置数据。

1 个答案:

答案 0 :(得分:1)

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

INSERT INTO TABLE1 (list, of, fields) SELECT list, of, fields FROM TABLE2;