Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] consulta que no actualiza

Estas en el tema de consulta que no actualiza en el foro de Mysql en Foros del Web. Hola a todos, tengo la siguiente consulta @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original UPDATE tabla_productos p INNER JOIN ( select p_dealer , ref_fabricante from con_stock ...
  #1 (permalink)  
Antiguo 23/03/2013, 06:41
 
Fecha de Ingreso: febrero-2010
Mensajes: 157
Antigüedad: 14 años, 2 meses
Puntos: 5
consulta que no actualiza

Hola a todos, tengo la siguiente consulta

Código MySQL:
Ver original
  1. UPDATE tabla_productos p INNER JOIN (select p_dealer,ref_fabricante from con_stock) c ON p.ref_fabricante = c.ref_fabricante SET p.p_dealer = c.p_dealer

y no hay medio de que actualize, me estoy ofuscando con ella, me echan un cable.

Gracias

Última edición por gnzsoloyo; 23/03/2013 a las 07:02 Razón: SQL sin etiquetar
  #2 (permalink)  
Antiguo 23/03/2013, 07:13
Avatar de 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: consulta que no actualiza

Por un lado, a mi entender estás complicando innecesariamente la consulta.
Hacer una subconsulta en ese contexto es bastante innecesario, bien podrías escribirla así:
Código MySQL:
Ver original
  1.     tabla_productos p
  2.     INNER JOIN con_stock c ON p.ref_fabricante = c.ref_fabricante
  3. SET p.p_dealer = c.p_dealer
Por otro lado, ambas consultas deberían funcionar, a menos que hubiese algún impedimento en el resultado del JOIN, por lo que sería mejor comprobar primero si esto devuelve datos:
Código MySQL:
Ver original
  1. SELECT p.ref_fabricante, p.p_dealer DealerOrigen, c.p_dealer DealerDestino
  2.     tabla_productos p
  3.     INNER JOIN con_stock c ON p.ref_fabricante = c.ref_fabricante ;
Si esto no devuelve datos, no existe relación entre ambos.
Si devuelve datos, pero ambos dealer son iguales, no realizará actualizaciones (son innecesarias).
Si devuelve más de un producto por cada fabricante, o más de un fabricante por cada producto, entonces tienes un problema de datos que no permite realizar correctamente la actualización.
En ese caso necesitaríamos una muestra de los datos de este SELECT para ver por qué no se genera correctamente el UPDATE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 23/03/2013, 11:09
 
Fecha de Ingreso: febrero-2010
Mensajes: 157
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: consulta que no actualiza

buenas, efectivamente si realizo la consulta para verificar los datos antes de actualizar la muestra perfecta, no entiendo porque la consulta nueva no funciona, inclusive tu consulta tampoco actualiza, seguire investigando....
  #4 (permalink)  
Antiguo 23/03/2013, 11:26
Avatar de 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: consulta que no actualiza

El tema no es investigar, simplemente, sino verificar los datos.
Postea lo que devuelve la consulta que te pasó.
Si no vemos eso, es imposible ayudarte coherentemente. Postea los datos que te pido y veamos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/03/2013, 12:18
 
Fecha de Ingreso: febrero-2010
Mensajes: 157
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: consulta que no actualiza

he visto la luz... eso si, despues de un cafelito... total chorrada.

gracias

Etiquetas: join, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:35.