una than tener solucion should returns operando more espaƱol error documentaciĆ³n dicho debe columna column code mysql sql select insert mysql-error-1241

than - mysql operando debe tener una columna



Error 1241 de MySQL: el operando debe contener 1 columna(s) (3)

Estoy tratando de insertar datos de una tabla1 en la tabla2

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

La clave para table2 es student_id.

Supongamos que no hay ningún duplicado.

Me aparece el error: MySQL error 1241: Operand should contain 1 column(s)

Solo hay cuatro columnas en la tabla2.


Error de sintaxis, elimine el ( ) de select .

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


Otra forma de hacer que el analizador plantee la misma excepción es la siguiente cláusula incorrecta.

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 )

La instrucción SELECT anidada en la cláusula IN devuelve dos columnas, que el analizador ve como operandos, que es técnicamente correcta, ya que la columna id coincide con los valores de una columna (id_película) en el resultado devuelto por la instrucción de selección anidada, que se espera para devolver una lista.

En aras de la integridad, la sintaxis correcta es la siguiente.

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 )

El procedimiento almacenado del que esta consulta es una parte no solo se analiza, sino que devuelve el resultado esperado.


Simplemente elimine el ( y el ) en su declaración SELECT:

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