首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >#1241操作数应在“插入到选择”中包含1列

#1241操作数应在“插入到选择”中包含1列
EN

Stack Overflow用户
提问于 2015-03-28 19:22:10
回答 3查看 6K关注 0票数 1

嘿,伙计们,我正在处理SQL,我发现了这个错误。

首先,我将向您展示我的代码。

代码语言:javascript
复制
Insert into HistoriqueEquipement  (DateMHS,CodeEquipement,nomenclature) VALUES (2015-03-28, (SELECT  CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241));

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

代码语言:javascript
复制
  Insert into HistoriqueEquipement  (DateMHS,CodeEquipement) VALUES (2015-03-28, (SELECT  CodeEquipement FROM equipement WHERE Numero_Serie =241));

它工作得很好,所以问题在哪里,我想插入许多列,而不仅仅是一列

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-28 19:34:44

我认为您得到了这个错误,因为由rows返回的SELECT不止一个。所以您可以使用这样的INSERT INTO TABLE SELECT

代码语言:javascript
复制
Insert into HistoriqueEquipement  (DateMHS,CodeEquipement,nomenclature) 
SELECT  CURDATE(), CodeEquipement, nomenclature 
FROM equipement 
WHERE Numero_Serie =241;
票数 0
EN

Stack Overflow用户

发布于 2015-03-28 19:38:31

您应该使用insert . . . select,并且可以使用它的常量:

代码语言:javascript
复制
Insert into HistoriqueEquipement (DateMHS,CodeEquipement) 
    SELECT '2015-03-28', CodeEquipement
    FROM equipement
    WHERE Numero_Serie = 241;

注意:

  • 如果您只想要一行,那么添加limit 1
  • 即使在使用值时,您也需要在日期前后使用单引号。2015-03-28计算为1984 (想想“减法”)。然后,这将被视为约会。
票数 0
EN

Stack Overflow用户

发布于 2015-03-28 19:47:33

由于您的子查询SELECT CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241返回超过一个结果而导致的错误。

如果要向表中插入一行,则可以尝试:

代码语言:javascript
复制
Insert into HistoriqueEquipement  (DateMHS,CodeEquipement,nomenclature) 
VALUES (2015-03-28, 
(SELECT  top 1 CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241));

如果您想将所有记录从equipement表插入到HistoriqueEquipement表中。

然后您可以使用:插入select

代码语言:javascript
复制
Insert into HistoriqueEquipement(DateMHS,CodeEquipement) 
    SELECT '2015-03-28',CodeEquipement
    FROM equipement
    WHERE Numero_Serie = 241;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29321516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档