necesito ayuda en una consulta de MySQL, no puedo encontrar la forma de escribir correctamente esta declaración. Estoy tratando de anidar una selección en una declaración de inserción y ifnull también se usa.
INSERT INTO vo (vo_id, agreement_id, serial_no, vo_date, vo_status)
VALUES (NULL, "3", (SELECT IFNULL(max(serial_no),1) FROM vo WHERE agreement_id = "3"), CURDATE(), "Open")
Cualquier ayuda es apreciada! ¡Gracias!
EDITAR: El error que obtuve en mysql es: # 1093 - No puede especificar la tabla de destino "vo" para actualizar en la cláusula FROM
Respuestas
1 para la respuesta № 1Puede deshacerse de este error envolviendo su subconsulta en otra subconsulta sin WHERE
cláusula
INSERT INTO vo
(vo_id, agreement_id, serial_no, vo_date, vo_status)
VALUES
(NULL, "3", (SELECT x.*
FROM (SELECT IFNULL(max(serial_no),1)
FROM vo
WHERE agreement_id = "3"
) x), CURDATE(), "Open")
1 para la respuesta № 2
Prueba esto
INSERT INTO vo (vo_id, agreement_id, serial_no, vo_date, vo_status)
VALUES (NULL, "3", (SELECT * from (SELECT IFNULL(max(serial_no),1) FROM vo WHERE agreement_id = "3")t), CURDATE(), "Open")