Update a una tabla que está relacionada con otra
Hola,
he mirado por el foro pero no me acabo de aclarar, ya no tengo la cabeza que tenía antes, a ver si pudieran echarme una mano, pero no al cuello. Tengo la siguiente consulta en un programa:
Esta consulta funciona, hace lo que quiero, pero tarda mucho en generar la subconsulta y actualizar los datos, ¿no habría alguna forma de hacer la consulta de actualización pero sin hacer subconsulta?.
Algo así, nada más que sin que de error y que funcione. :p Gracias y saludos. |
Hola,
No especifica el motor de base de datos que usa, pero: Con SQL estándar, para muchos motores, podría hacer: Con Firebird, también podría hacer:
Con MS Sql, también podría hacer:
Con (algunas versiones de) Oracle, también podría hacer:
Pero siempre, siempre, se le va a demorar ese UPDATE mientras la selección de registros de la tabla productos no esté apropiadamente indexada. Desde mi humilde opinión, es la única opción. - |
También en MySQL se puede usar el JOIN. Y concuerdo con TOPX en que sin los índices adecuados la consulta siempre será lenta.
// Saludos |
Hola,
gracias TOPX y roman por vuestras respuestas y tiempo, parezco nuevo, el motor de base de datos es ACCESS, he probado con el código de MS SQL
No me funcionaba, me salía error de sintaxis, así que probé con la de oracle.
Con esta consulta funcionó de maravilla, además actualizó la tabla muy rápido, así que cojonudo. Muchas gracias. |
Cita:
Cita:
// Saludos |
Cita:
Ahora, no sé si sea bueno o malo. No quiero malacostumbrar, pero tampoco dejar de ayudar si está en mis posibilidades. - |
Pero la versión de firebird no vale, ese código sólo funcionará en un stored procedure :D
|
En realidad lo hice adrede,
para que puedan repasar todos los motores de BBDD y no se apolillen sus conocimientos. :D Saludos. |
Cita:
|
La franja horaria es GMT +2. Ahora son las 06:12:46. |
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