UPDATE con SELECT como???
[EDIT] ups me equivoqué en el título, debió ser así "UPDATE CON SELECT como???"[EDIT]
Trato de actualizar un campo de una tabla con un campo de otra tabla, pero el rollo lo quiero hacer masivo, primero intente hacerlo asi: UPDATE codigos SET nombreING = ( SELECT temp.nombreING FROM codigos_TEMP temp JOIN codigos c on c.codigo = temp.codigo) luego me mando error de que la tabla a actualizar no podía formar parte del SELECT y entonces le hice una copia a mi tabla fuente (de donde voy a sacar los datos) y quedo así: UPDATE codigos SET nombreING = ( SELECT temp.nombreING FROM codigos_TEMP temp JOIN codigos_copy c on c.codigo = temp.codigo) pero ahora me marca error de que el subquery me arrojará más de un registro, pero es exactamente lo que quiero hacer, que todos los que me traiga los actualice, no solo uno. bueno ahi esta mi problema, como hacer ese update masivo... de antemano gracias. |
Supongo que estás usando MySQL de no ser así prueba esto
ahora modificando tu solución puedes intentar esto
|
Cita:
A mi me parece que esto te sucede por que la subconsulta no debe usar un join sino un where. De todas formas, esto también lo puedes hacer sin subconsultas:
// Saludos |
efectivamente estoy usando mysql
gracias por las respuestas las voy a checar en un rato mas... |
Hola
No hace falta el join ya que el where ya hace esa funcion en la subquery y luego el where final es para evitar que haga update en el caso de que el codigo no exista en la tabla codigos_temp Código SQL [-] UPDATE codigos c SET c.nombreING = ( SELECT temp.nombreING FROM codigos_TEMP temp where c.codigo = temp.codigo) where exists( select null from codigos_TEMP where codigo=c.codigo) Saludos |
La franja horaria es GMT +2. Ahora son las 12:14:09. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi