Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/01/2014, 17:39
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Update con resultado de otra tabla

Cita:
Si bueno lo de tabla 2 lo he puesto para que se viera que era una tabla diferente, no tiene ningun numero.
Las consultas imaginarias o supuestas, habitualmente redundan en diagnósticos imaginarios o falsos.
Postea los nombres de los objetos reales, tal y como son. Todo lo que omitas o generalices nos llevará a darte consejos equivocados. No supongas que por que tú sabes de lo que hablas nosotros también lo hacemos. Las generalizaciones omiten datos importantes para el análisis.
Cita:
Hace falta hacer un Join para un update tan simple?
¿Qué te hace suponer que una consulta debe ser "compleja" para necesitar solucionarse con un JOIN?
Un JOIN se usa cuando debe usarse, es decir cuando hay una relación real entre dos o más tablas. Que sea simple o complejo es relativo. Cuando haces la consulta de la forma que la planeaste estás haciéndola ineficiente, lo que es peor que hacerla compleja.
Cita:
Antes de preguntar he buscado y supongo que es algo tan simple que no hay ni ejemplos.
Hay decenas de posts preguntando el mismo tema. La clave es tener práctica para lograr obtener de los buscadores la respuesta que estás bsucando.
Yo mismo respondí dos veces posts similares en esta última semana... Pero dado que suelo responder muchos, no estoy seguro de cuál fue el último.

Yendo al caso, lo tuyo es tan sencillo como:
Código MySQL:
Ver original
  1. UPDATE tablaA, tablaB
  2. SET TablaA.campo = tablaB.campo
  3. WHERE condiciones;
Pero este tipo de JOIN tiene como condición que bede existir una relación entre el registro a actualizar de la primera tabla y el registro de la segunda.

En el caso de lo que propones tu, tiene un prblema básico:
Código MySQL:
Ver original
  1. UPDATE tabla
  2. tabla.campo = select indice from tabla 2 where comp = 1
Tiene dos problemas:
1) Necesita paréntesis para encerrar el resultado de la subconsulta.
2) Como no hay un discriminante de la tabla afectada por el UPDATE, se haría un UPDATE de todos y cada uno de los registros de la primera tabla con ese único registro de la segunda.
Yo a eso no le veo sentido.
Código MySQL:
Ver original
  1. UPDATE tabla
  2. tabla.campo = (select indice from tabla 2 where comp = 1)
Postea la consulta real que estás usando.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)