SQL - Actualizar con consulta que agrupa a varias tablas

 
Vista:

Actualizar con consulta que agrupa a varias tablas

Publicado por Sepharat (1 intervención) el 21/01/2010 12:26:42
Hola, estoy trabajando en una aplicacion en asp que inserta datos en una base de datos en access. El caso es que tengo que realizar una actualización de un registro de una tabla y hasta ahora siempre me encontraba con un error de tabla bloqueada o de solo lectura. Al final me he dado cuenta de que es porque en la sentencia select para buscar el registro realizo la consulta sobre dos tablas. La sql es la siguiente

select mat.*
from matriculacion_cursos mat,usuario
where mat.id_curso = 1229
and mat.id_usuario = usuario.id_usuario
and usuario.id_persona_sig = 2647

Si la modifico por la siguiente me permite actualizar sin problemas

select mat.*
from matriculacion_cursos mat
where mat.id_curso = 1229
and mat.id_usuario = 6503

No se si es algo normal de sql pero no lo acabo de entender. Si quiero realizar una consulta para encontrar un registro y actualizar un dato, ¿no puedo añadir a esta consulta mas tablas que la misma en el que esta el dato a modificar?¿Es necesario encontrar las claves primarias antes de realizar la consulta para que ésta solo tenga la tabla a cambiar?
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Actualizar con consulta que agrupa a varias tab

Publicado por smokalot (23 intervenciones) el 26/02/2010 14:52:28
Hola!

Tienes 2 opciones:

a) actualizar más de 1 valor:
UPDATE tabla
SELECT campos_origen FROM tabla2 WHERE tabla_de_campos_origen
WHERE tabla_update

b) actualizar 1 valor:
SELECT @cVAR_CAMPO1 = campo1 FROM tabla WHERE tabla_where

UPDATE tabla_destino SET campo_update = @cVAR_CAMPO1 .....
WHERE tabla_destino_wh

Suerte,

SMK
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar