【问题标题】:#1241 Operand should contain 1 column(s) in Insert into Select#1241 操作数应在插入选择中包含 1 列
【发布时间】:2023-04-01 05:57:01
【问题描述】:

嘿,伙计们,我正在研究 SQL,我收到了这个错误

首先我会告诉你我的代码

Insert into HistoriqueEquipement  (DateMHS,CodeEquipement,nomenclature) VALUES (2015-03-28, (SELECT  CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241));

我收到错误 #1241 - 操作数应包含 1 列; 如果我使用

  Insert into HistoriqueEquipement  (DateMHS,CodeEquipement) VALUES (2015-03-28, (SELECT  CodeEquipement FROM equipement WHERE Numero_Serie =241));

它工作得很好,所以我想插入很多列而不仅仅是一个

【问题讨论】:

  • 错误是因为子查询返回两列(CodeEquipmentnomenclature),并且应该是一列(CodeEquipment)的值。您需要将其分解为两个子查询,每列一个,或者将查询转换为连接以完成您要执行的操作
  • 是的,我知道它会返回到 2,但我如何做到这一点可以解释更多

标签: mysql sql


【解决方案1】:

我认为您会收到此错误,因为SELECT 返回的rows 不止一个。所以你可以像这样使用INSERT INTO TABLE SELECT

Insert into HistoriqueEquipement  (DateMHS,CodeEquipement,nomenclature) 
SELECT  CURDATE(), CodeEquipement, nomenclature 
FROM equipement 
WHERE Numero_Serie =241;

【讨论】:

  • 如何关闭问题!!
【解决方案2】:

您应该使用insert . . . select,并且可以将其与常量一起使用:

Insert into HistoriqueEquipement (DateMHS,CodeEquipement) 
    SELECT '2015-03-28', CodeEquipement
    FROM equipement
    WHERE Numero_Serie = 241;

注意:

  • 如果您只想要一行,请添加limit 1
  • 即使在使用值时,也需要在日期两边加上单引号。 2015-03-28 计算结果为 1984(想想“减法”)。然后将其视为日期。

【讨论】:

    【解决方案3】:

    您遇到的错误是因为您的子查询 SELECT CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241 返回超过 1 个结果。

    如果你想在表格中插入一行,那么你可以尝试:

    Insert into HistoriqueEquipement  (DateMHS,CodeEquipement,nomenclature) 
    VALUES (2015-03-28, 
    (SELECT  top 1 CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241));
    

    如果你想将equipement 表中的所有记录插入HistoriqueEquipement 表中。

    那么你可以使用:Insert into select

    Insert into HistoriqueEquipement(DateMHS,CodeEquipement) 
        SELECT '2015-03-28',CodeEquipement
        FROM equipement
        WHERE Numero_Serie = 241;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      相关资源
      最近更新 更多