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

[SOLUCIONADO] Ordenar alfabeticamente entre 2 tablas

Estas en el tema de Ordenar alfabeticamente entre 2 tablas en el foro de Mysql en Foros del Web. Hola: Tengo las siguientes tablas: Tabla sucursales (id_sucursal, direcion, telefono, pais, provincia, localidad) Los campos pais, provincia y localidad son codigos numericos cuya descripcion se ...
  #1 (permalink)  
Antiguo 21/03/2013, 05:42
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 1
Ordenar alfabeticamente entre 2 tablas

Hola:

Tengo las siguientes tablas:

Tabla sucursales (id_sucursal, direcion, telefono, pais, provincia, localidad)
Los campos pais, provincia y localidad son codigos numericos cuya descripcion se almacena en la tabla "locaciones"
Ej de registro: 2, Rivadaia 5500, (011) 444-4444, 1, 25, 720

Tabla locaciones (id, relacion, nombre)
En esta tabla se guardan los nombres de todos los paises, provincia y localidades, el campo relacion indica si el registro es hijo de otro, por ejemplo, el campo "Capital Federal" es hijo del campo Argentina.
Ej de registro:
1 0 Argentina
23 1 Capital Federal
48 23 Agronomia


Lo que necesito es listar todas las sucursales ordenadas alfabeticamente por pais, provincia y localidad

Alguien me da una mano con esto por favor? Ya no se me ocurre que probar.

Gracias
  #2 (permalink)  
Antiguo 21/03/2013, 05: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: 17 años
Puntos: 2658
Respuesta: Ordenar alfabeticamente entre 2 tablas

Cita:
Ya no se me ocurre que probar.
Empieza mostrando lo que probaste.
Sólo nos estás diciendo como son aproximadamente las tablas, y con lo que nos dices el problema parece simple de resolver. Resulta raro que no lo hayas logrado.
Veamos por qué dices que no te sale: Postea las consultas que intentaste.
__________________
¿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 21/03/2013, 05:59
Avatar de antoniopol  
Fecha de Ingreso: agosto-2012
Ubicación: Valladolid
Mensajes: 114
Antigüedad: 12 años, 2 meses
Puntos: 21
Respuesta: Ordenar alfabeticamente entre 2 tablas

Así de priemras pienso que puede funcionar lo siguiente:

Código MySQL:
Ver original
  1. select nombre from locaciones loc where loc.id in (select relacion from locaciones loc2 where loc2.relacion=loc.id) order by nombre asc

Si no te funciona esto busca info sobre consulta correlativas o correlacionales que se conocen así lo que creo que quieres sacar. espero que te sirva =D
__________________
>> Blog de desarrollo web.
>> @antoniopol06 amante de la Web =D
  #4 (permalink)  
Antiguo 21/03/2013, 06:33
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ordenar alfabeticamente entre 2 tablas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Empieza mostrando lo que probaste.
Sólo nos estás diciendo como son aproximadamente las tablas, y con lo que nos dices el problema parece simple de resolver. Resulta raro que no lo hayas logrado.
Veamos por qué dices que no te sale: Postea las consultas que intentaste.

Las tablas son como las pase, solo falto en la tabla sucursales el campo id_empresa.

Lo ultimo que intente fue esto:
SELECT
sucursales.id AS suc_id,
sucursales.direccion AS suc_direccion,
sucursales.telefono AS suc_telefono,
sucursales.pais AS suc_pais,
sucursales.provincia AS suc_provincia,
sucursales.localidad AS suc_ciudad
FROM sucursales, locaciones
WHERE
id_empresa = '11' AND
sucursales.provincia = locaciones.id
ORDER BY suc_pais, suc_provincia, suc_ciudad

Quizas sea simple de resolver, puede ser, pero no encuentro la solucion, por eso pido ayuda a los que mas saben. Gracias
  #5 (permalink)  
Antiguo 21/03/2013, 07:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Ordenar alfabeticamente entre 2 tablas

Limpiando un poquito, tu consulta es:
Código MySQL:
Ver original
  1.     S.id suc_id,
  2.     S.direccion suc_direccion,
  3.     S.telefono suc_telefono,
  4.     S.pais suc_pais,
  5.     S.provincia suc_provincia,
  6.     S.localidad suc_ciudad
  7. FROM sucursales S INNER JOIN locaciones L ON S.provincia = L.id
  8.     id_empresa = '11'
  9. ORDER BY suc_pais, suc_provincia, suc_ciudad
Pues simplemente es cambiar la única referencia a la tabla Locaciones, invocandolá una vez por cada campo, con sus respectivos alias:
Código MySQL:
Ver original
  1.     S.id suc_id,
  2.     S.direccion suc_direccion,
  3.     S.telefono suc_telefono,
  4.     P.nombre suc_pais,
  5.     PR.nombre suc_provincia,
  6.     L.nombre suc_ciudad
  7. FROM sucursales S
  8.     INNER JOIN locaciones P ON S.pais = P.id
  9.     INNER JOIN locaciones PR ON S.provincia = PR.id
  10.     INNER JOIN locaciones L ON S.localidad = L.id
  11.     id_empresa = '11'
  12. ORDER BY suc_pais, suc_provincia, suc_ciudad
De todos modos, hay un error básico de diseño y de conceptualización: No se debe usar una única tabla para almacenar País, Provincia y Ciudad. Son tres tablas diferentes, porque representan entidades relacionadas diferentes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 21/03/2013 a las 07:25 Razón: Error sintactico de query
  #6 (permalink)  
Antiguo 21/03/2013, 07:21
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ordenar alfabeticamente entre 2 tablas

Si, entiendo lo que decis del error de diseño.

En la consulta que me enviaste no puedo hacer esto creo:

Código MySQL:
Ver original
  1.     P.nombre suc_pais,
  2.     PR.nombre suc_provincia,
  3.     L.nombre suc_ciudad

ya que pais, provincia y localidad estan en el mismo campo
  #7 (permalink)  
Antiguo 21/03/2013, 07: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: 17 años
Puntos: 2658
Respuesta: Ordenar alfabeticamente entre 2 tablas

¿Lo probaste?

Por si no lo notas, en cada uno se está invocando a una tabla diferente (cuando le aplicas el alias, ya no es la misma tabla).
Entonces toma cada dato de una relación distinta en el FROM (ya corregí mi post para que se entienda mejor). Supongo que jamás has trabajado con tablas que lleven alias...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 21/03/2013, 07:39
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ordenar alfabeticamente entre 2 tablas

si, lo probé. Me da este error:

#1054 - Unknown column 'P.nombre' in 'field list'
  #9 (permalink)  
Antiguo 21/03/2013, 07:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Ordenar alfabeticamente entre 2 tablas

¿Y no se te ocurrió buscar cuál es el nombre real que tiene ese campo en tu tabla?

Yo puse "nombre", porque según tu mismo dijiste, la estructura sería:
Cita:
Tabla locaciones (id, relacion, nombre)
Por ello yo asumo, que "nombre" es el nombre que corresponde a país, provincia o ciudad. Yo no tengo por qué suponer que nos estás dando información incorrecta...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 21/03/2013, 07:53
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ordenar alfabeticamente entre 2 tablas

Cierto, error mio. Ahora funciona.
Gracias gnzsoloyo. Poco cordial tu trato pero agradezco tu dedicación. Saludos cordiales

Etiquetas: alfabeticamente, campo, campos, tabla, tablas
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 09:33.