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;