Aprendiendo SQL, perdón si esto es rudimentario. Tratando de encontrar una solución de trabajo UPDATE
para el siguiente código pseudoish:UPDATE Sintaxis con ORDER BY, LIMIT y Multiple Tables
UPDATE tableA
SET tableA.col1 = '$var'
WHERE tableA.user_id = tableB.id
AND tableB.username = '$varName'
ORDER BY tableA.datetime DESC LIMIT 1
Lo anterior se parece más a SELECT
sintaxis, pero la que, básicamente, tratando de actualizar un único valor de la columna en el última fila de tablaA, donde un nombre de usuario que se encuentra en tableB.username (representado por $ varName) está vinculado a su número de ID en tableB.id, que existe como id en tableA.user_id.
Afortunadamente, eso tiene sentido. Supongo que es necesario algún tipo de JOIN
, pero las subconsultas parecen problemáticas para UPDATE
. Entiendo que ORDER BY
y LIMIT
están fuera de los límites cuando hay varias tablas involucradas en ACTUALIZAR ... Pero necesito la funcionalidad. ¿Hay alguna forma de evitar esto?
Un poco confundido, gracias de antemano.
+1 para responder a su propia pregunta –
** Nota: ** Esto no funciona para tablas temporales - del manual: 'No puede hacer referencia a una tabla TEMPORAL más de una vez en la misma consulta. –