Es decir, algo así. En la tablaA, quiero actualizar el campo1 con el valor más nuevo del primary key de la tablaB.
Hasta ahora me he visto la función LAST() y la función LAST_INSERT_ID(), pero parece que solo sirven para retornar valores en select o en having, incluso esta última parece que no me sirve si otra persona (o no se si el manual se refiere a usuario de DB) hace una entrada e incrementa el valor.
Hasta ahora he tratado cosas como estas, desde medio lógicas hasta disparates a ver si me resultan:
Es decir algo así:
Código sql:
Ver original
UPDATE tabla_1 AS t1, tabla_2 AS t2 SET t1.campo1 = t2.campo_primarykey WHERE t1.campo_id = X AND t2.campo_primarykey = MAX (t2.campo_primarykey)
Código sql:
Ver original
UPDATE tabla_1 AS t1 SET t1.campo1 = campo_primarykey WHERE t1.campo_id = X HAVING MAX (tabla_2.campo_primarykey) AS campo_primarykey
Código sql:
Ver original
UPDATE tabla_1 AS t1, tabla_2 AS t2 SET t1.campo1 = last_insert_id(tabla_2.campo_primarykey) WHERE t1.campo_id = X
Usando tanto MAX, como LAST, como LAST_INSERT_ID y nada.
¿alguna idea? ¿es posible lo que busco?
(olvidaba decir que sé que haciendo un select justo antes se acaba el dilema, pero quiero ahorrármelo )
2) Lo otro es que quisiera saber si es posible usar INNER JOIN con UPDATEs
Hasta ahora he venido usando cosas así:
Código sql:
Ver original
UPDATE t1 SET t1.campo1 = valor WHERE t1.campo1 = t2.campo1 AND t2.campo2 = t3.campo2 AND t3.campo3 = t4.campo4 AND t4.campo5 = A;
Pero me recuerda mucho a como no deben hacerse los SELECT pudiéndose usar INNER JOINs y ya que vine a preguntar una cuestión de updates aprovecho el viaje para esta duda que siempre he tenido
Gracias adelantadas