mysql插入到tbl(从2表中选择)

时间:2016-03-02 01:51:16

标签: mysql sql

正如标题所示,我试图插入1个表中,从2个表中选择值。该查询给我一个错误

INSERT INTO def 
SELECT * from table1, table2
Where time = table1.time

2 个答案:

答案 0 :(得分:0)

def表列定义必须等于已加入的table1table2列定义。否则,您必须在def表中定义要与SELECT输出映射的列。

答案 1 :(得分:0)

首先,学会使用正确的显式JOIN语法。 从不FROM子句中使用逗号。

您的查询返回错误,因为可能两个表都有一个名为time的列。因此,您需要表别名或using子句。

其次,请始终为insertselect明确列出列。不依赖于默认排序。因此,正确编写的查询看起来更像是这样:

INSERT INTO def(col1, col2, . . . )
    SELECT t1.col1, t2.col2, . . .
    FROM table1 t1 JOIN
         table2 t2
         ON t2.time = t1.time;