【问题标题】:mysql insert into tbl (select from 2 table)mysql插入tbl(从2个表中选择)
【发布时间】:2016-03-02 01:51:16
【问题描述】:

正如标题所说,我正在尝试从 2 个表中选择值插入 1 个表中。查询给了我一个错误

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

【问题讨论】:

  • 您需要指定要选择的列并确保选择的列与表def的表定义匹配

标签: mysql sql


【解决方案1】:

def 表列定义必须等于连接的table1table2 列定义。否则,您必须定义 def 表中的哪一列与 SELECT 的输出进行映射。

【讨论】:

    【解决方案2】:

    首先,学习使用正确的显式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;
    

    【讨论】:

      猜你喜欢
      • 2011-08-19
      • 2013-09-03
      • 2018-05-11
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多