mysql插入tbl(从2个表中选择)
Posted
技术标签:
【中文标题】mysql插入tbl(从2个表中选择)【英文标题】:mysql insert into tbl (select from 2 table) 【发布时间】:2016-03-02 01:51:16 【问题描述】:正如标题所说,我正在尝试从 2 个表中选择值插入 1 个表中。查询给了我一个错误
INSERT INTO def
SELECT * from table1, table2
Where time = table1.time
【问题讨论】:
您需要指定要选择的列并确保选择的列与表def的表定义匹配 【参考方案1】:def
表列定义必须等于连接的table1
和table2
列定义。否则,您必须定义 def
表中的哪一列与 SELECT 的输出进行映射。
【讨论】:
【参考方案2】:首先,学习使用正确的显式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;
【讨论】:
以上是关于mysql插入tbl(从2个表中选择)的主要内容,如果未能解决你的问题,请参考以下文章