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

inner join dos campos

Estas en el tema de inner join dos campos en el foro de Mysql en Foros del Web. Hola foreros, tengo este problema, tengo que actualizar una tabla ciudades que tiene estos campos codigo_pais codigo_estado codigo_estado_numerico nombre_ciudad y una tabla estados con estos ...
  #1 (permalink)  
Antiguo 05/06/2011, 16:00
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 17 años, 11 meses
Puntos: 0
inner join dos campos

Hola foreros, tengo este problema, tengo que actualizar una tabla ciudades que tiene estos campos
codigo_pais
codigo_estado
codigo_estado_numerico
nombre_ciudad

y una tabla estados con estos campos
codigo_pais
codigo_estado
nombre_estado
codigo_estado_numerico

tengo que actualizar la tabla ciudades.codigo_estado_numerico a estados.codigo_estado_numerico

Para esto tengo que hacer inner join entre las dos tablas, pero tengo que hacerlo con los dos campos codigo_pais y codigo_estado por que codigo_estado no es un campo unico, cada estado empieza por codigo 00 y lo que los diferencia es el codigo pais.

Como se hace el inner join doble?

Estoy probando esto, pero me deja el mamp dando vueltas por horas y no pasa nada:

update ciudades as a
inner join estaods as b on a.codigo_estado = b.codigo_estado AND
a.codigo_pais = b.codigo_pais
set a.codigo_estado_numerico = b.codigo_estado_numerico

Alguna ayuda?

Gracias.
  #2 (permalink)  
Antiguo 05/06/2011, 16:57
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, 4 meses
Puntos: 2658
Respuesta: inner join dos campos

Técnicamente no hay errores visibles en la sintaxis:
Código MySQL:
Ver original
  1. UPDATE ciudades a INNER JOIN estados b
  2.     ON a.codigo_estado = b.codigo_estado AND a.codigo_pais = b.codigo_pais
  3. SET a.codigo_estado_numerico = b.codigo_estado_numerico;
Por lo que sólo se me ocurre que la condución de relación puede estar mal planteada.
¿Que devuelve un SELECT con las mismas condiciones, por ejemplo:
Código MySQL:
Ver original
  1. FROM ciudades a INNER JOIN estados b
  2.     ON a.codigo_estado = b.codigo_estado AND a.codigo_pais = b.codigo_pais;
¿Devuelve algún registro?
__________________
¿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 05/06/2011, 17:15
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: inner join dos campos

El SELECT tuyo anda bien, en realidad lo que hice fue agregar un campo id autonumerico y pedir los primeros 50 resultados (la tabla ciudades tiene 2.3000.000 registros), pero ahora vuelvo a hacer el update, con id menor a 10000 y se me queda ahi colgado de nuevo......

Etiquetas: campos, join
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 13:45.