正如标题所示,我试图插入1个表中,从2个表中选择值。该查询给我一个错误
INSERT INTO def
SELECT * from table1, table2
Where time = table1.time
答案 0 :(得分:0)
def
表列定义必须等于已加入的table1
和table2
列定义。否则,您必须在def
表中定义要与SELECT输出映射的列。
答案 1 :(得分:0)
首先,学会使用正确的显式JOIN
语法。 从不在FROM
子句中使用逗号。
您的查询返回错误,因为可能两个表都有一个名为time
的列。因此,您需要表别名或using
子句。
其次,请始终为insert
和select
明确列出列。不依赖于默认排序。因此,正确编写的查询看起来更像是这样:
INSERT INTO def(col1, col2, . . . )
SELECT t1.col1, t2.col2, . . .
FROM table1 t1 JOIN
table2 t2
ON t2.time = t1.time;