繁体   English   中英

MySQL错误1241:操作数应包含1列

[英]MySQL error 1241: Operand should contain 1 column(s)

我正在尝试将表1中的数据插入表2中

insert into table2(Name,Subject,student_id,result)
select (Name,Subject,student_id,result)
from table1;

table2的键是student_id。

假定没有任何重复项。

我收到错误消息: MySQL error 1241: Operand should contain 1 column(s)

table2中只有四列。

语法错误,从select删除( )

insert into table2 (name, subject, student_id, result)
select name, subject, student_id, result
from table1;

只需删除SELECT语句上的()

insert into table2 (Name, Subject, student_id, result)
select Name, Subject, student_id, result
from table1;

使解析器引发相同异常的另一种方法是以下不正确的子句。

SELECT r.name
FROM roles r
WHERE id IN ( SELECT role_id ,
                     system_user_id
                 FROM role_members m
                 WHERE r.id = m.role_id
                 AND m.system_user_id = intIdSystemUser
             )

IN子句中的嵌套SELECT语句返回两列,解析器将其视为操作数,这在技术上是正确的,因为id列与嵌套select语句返回的结果中只有一列(role_id)的值匹配,这是预期的返回列表。

为了完整起见,正确的语法如下。

SELECT r.name
FROM roles r
WHERE id IN ( SELECT role_id
                 FROM role_members m
                 WHERE r.id = m.role_id
                 AND m.system_user_id = intIdSystemUser
             )

该查询所占的存储过程不仅被解析,而且还返回了预期的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM