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
SELECT * FROM (SELECT tabla1.id, tabla1.nombre, tabla1.clase_id, tabla2.id AS tabla2id, tabla2.tipo_id FROM tabla1 INNER JOIN tabla2 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
SELECT * FROM (SELECT tabla1.id, tabla1.nombre, tabla1.clase_id, tabla2.id AS tabla2id, tabla2.tipo_id FROM tabla1 INNER JOIN tabla2 ON tabla1.clase_id = tabla2.id 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
UPDATE (SELECT tabla1.id, tabla1.nombre, tabla1.clase_id, tabla2.id AS tabla2id, tabla2.tipo_id FROM tabla1 INNER JOIN tabla2 ON tabla1.clase_id = tabla2.id WHERE tabla1.nombre = 118) TEMPORAL SET TEMPORAL.clase_id = TEMPORAL.tipo_id
Desde ya agradezco toda ayuda.