Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/09/2011, 20:57
Avatar de dmassive
dmassive
 
Fecha de Ingreso: febrero-2002
Ubicación: Paraná - Entre Ríos - Argentina
Mensajes: 279
Antigüedad: 23 años
Puntos: 7
Pregunta UPDATE de una tabla con datos de otra

Buen dìa!!!

Quiero efectuar una actualización en una tabla, tomando datos de otra, siendo que ambas están relacionadas, pero no encuentro como realizar el UPDATE. Les planteo el problema desde cero:

TABLA1
id
nombre
clase_id

TABLA2
id
tipo_id


La TABLA1.clase_id está relacionada con la TABLA2.id y la consulta SQL es la siguiente:

Código SQL:
Ver original
  1. SELECT * FROM
  2. (SELECT tabla1.id, tabla1.nombre, tabla1.clase_id, tabla2.id AS tabla2id, tabla2.tipo_id
  3. FROM tabla1
  4. INNER JOIN tabla2
  5. ON tabla1.clase_id = tabla2.id) TEMPORAL

Esto me muestra lo siguiente:
id nombre clase_id tabla2id tipo_id
Hasta aquí de maravillas.

Ahora le añado una restricción a la consulta SQL:
Código SQL:
Ver original
  1. SELECT * FROM
  2. (SELECT tabla1.id, tabla1.nombre, tabla1.clase_id, tabla2.id AS tabla2id, tabla2.tipo_id
  3. FROM tabla1
  4. INNER JOIN tabla2
  5. ON tabla1.clase_id = tabla2.id
  6. WHERE tabla1.nombre = 118) TEMPORAL

Correcto me trae exactamente lo que busco, ahora viene lo complicado, quiero hacer un UPDATE de la tabla1 que:
tabla1.clase_id tome el valor de tabla2.tipo_id

Ese UPDATE debe ser basado en la consulta SQL y allí es donde no sé para dónde salir corriendo XD

Intente hacer algo así, pero claro, no funciona :(
Código SQL:
Ver original
  1. UPDATE (SELECT tabla1.id, tabla1.nombre, tabla1.clase_id, tabla2.id AS tabla2id, tabla2.tipo_id
  2. FROM tabla1
  3. INNER JOIN tabla2
  4. ON tabla1.clase_id = tabla2.id
  5. WHERE tabla1.nombre = 118) TEMPORAL
  6. SET TEMPORAL.clase_id = TEMPORAL.tipo_id

Desde ya agradezco toda ayuda.
__________________
Blümchen... einfach die rave Prinzessin
http://www.dmassive.com.ar/