正如标题所说,我试图插入到从2个表中选择值的1个表中。查询给我一个错误mysql插入tbl(从2表中选择)
INSERT INTO def
SELECT * from table1, table2
Where time = table1.time
正如标题所说,我试图插入到从2个表中选择值的1个表中。查询给我一个错误mysql插入tbl(从2表中选择)
INSERT INTO def
SELECT * from table1, table2
Where time = table1.time
def
表列的定义必须等于加入table1
和table2
列定义。否则,您必须定义def
表中的哪一列与SELECT的输出进行映射。
首先,学会使用恰当的显式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;
您需要指定选择哪些列并确保选定的列与表def的表定义匹配 – LKW