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

Agrupar: Group by

Estas en el tema de Agrupar: Group by en el foro de Bases de Datos General en Foros del Web. Buenas, tengo una base de datos con ciudades, ej. Chicago repetido 20 veces, Madrid 15 veces, Tokio 10 veces, y colgando de ellos sus pueblos ...
  #1 (permalink)  
Antiguo 10/02/2005, 07:58
Avatar de PeiShar  
Fecha de Ingreso: abril-2001
Ubicación: España
Mensajes: 125
Antigüedad: 23 años
Puntos: 0
Agrupar: Group by & PHP

Buenas, tengo una base de datos con ciudades, ej. Chicago repetido 20 veces, Madrid 15 veces, Tokio 10 veces, y colgando de ellos sus pueblos y lo que quiero es sacar en pantalla las ciudades y pueblos agrupados:

Madrid
Pueblo 1
Pueblo 2

Chicago
Pueblo 1
Pueblo 2

Tokio
Pueblo 1
Pueblo 2

Necesito ayuda, :(. Gracias

Última edición por PeiShar; 15/02/2005 a las 06:41 Razón: Para que me lo inserten en el foro de PHP
  #2 (permalink)  
Antiguo 10/02/2005, 08:13
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
Bueno, no se si esto le sirva

SELECT c.NombreCiudad, p.Pueblos
FROM ciudades c
LEFT JOIN pueblos p ON c.IdCiudad = p.IdCiudad
GROUP BY p.Pueblos
ORDER BY c.NombreCiudad
  #3 (permalink)  
Antiguo 15/02/2005, 04:40
Avatar de PeiShar  
Fecha de Ingreso: abril-2001
Ubicación: España
Mensajes: 125
Antigüedad: 23 años
Puntos: 0
Pregunta

Buenas, básicamente lo que quiero es poder agrupar primero las capitales de provincia, luego sus pueblos y a continuación los establecimientos que celgan de cada uno de ellos, para ello hago una consulta tal muestro más abajo, pero el resultado es que me muestra las capitales, poblaciones y establecimientos repetidos, y solo necesito que salga una vez, que debo hacer para conseguir dicho resultado? Debo hacer distintas consultas a la consulta general? Saludos y gracias.

+Madrid
+Getafe
-Deportes

Establecimiento Pepito
Establecimiento Juanito

-Ocio

Establecimiento Manolito

+Leganés
-Deportes

Establecimiento Juana
Establecimiento Sofia

-Ocio

Establecimiento Chepa

+Barcelona
+Tarragona
-Deportes

Establecimiento Pepito
Establecimiento Juanito

-Ocio

Establecimiento Manolito

+Gerona
-Deportes

Establecimiento Juana
Establecimiento Sofia

-Ocio

Establecimiento Chepa

Código PHP:
$result=pg_exec($conexion,'select P.nombre as provincia, PO.denominacion as poblacion, S.nombre as sector, E.nombre as nombre_establecimiento,E.direccion, E.cp, E.telefono, E.servicio from establecimiento E, poblacion PO, provincia P, sectorestablecimiento S where E.idpoblacion=PO.idpoblacion and PO.idprovincia=P.idprovincia and E.idsectorestablecimiento=S.idsectorestablecimiento group by P.nombre, PO.denominacion, S.nombre, E.nombre,E.direccion, E.cp, E.telefono, E.servicio order by P.nombre, PO.denominacion, S.nombre limit 3'); 
  #4 (permalink)  
Antiguo 15/02/2005, 04:47
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
el DISTINC() no te funciona?
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 15/02/2005, 05:31
Avatar de PeiShar  
Fecha de Ingreso: abril-2001
Ubicación: España
Mensajes: 125
Antigüedad: 23 años
Puntos: 0
Buenas, lo que pasa con el Distinct no me vale para hacerlo con los tres campos al mismo tiempo: Provincia, Población y establecimiento, por tanto tendría que hacer tres consultas por separado, y lo que busco es simplificar al máximo el código. Sigo investigando... Gracias
  #6 (permalink)  
Antiguo 15/02/2005, 05:53
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... yo creo que sí... pero la verdad no lo sé bien... Oyes, te doy un link que quizá te ayude
http://www.mysql-hispano.org/page.php?id=31&pag=8
Suerte!
PD: ve todo el artículo... incluso ve los de "lo basico" que viene en 2 tomos... estoy casi seguro que ví lo que quieres hacer... espero no hacerte perder tu tiempo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 15/02/2005, 05:57
Avatar de PeiShar  
Fecha de Ingreso: abril-2001
Ubicación: España
Mensajes: 125
Antigüedad: 23 años
Puntos: 0
Gracias, voy a darle un vistazo. Saludos
  #8 (permalink)  
Antiguo 15/02/2005, 06:40
Avatar de PeiShar  
Fecha de Ingreso: abril-2001
Ubicación: España
Mensajes: 125
Antigüedad: 23 años
Puntos: 0
No podría mejor mediante bucles con php localizar las provincias, poblaciones y establecimientos e imprimirlos??? Saludos
  #9 (permalink)  
Antiguo 16/02/2005, 18:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... también... crear tres arreglos (Provincias, poblaciones y establecimientos) e irlos consultando en cierto órden... uuede resultar.
Aunque, creo yo, la filosofía deberia de ser el ocupar lo que se inventó para hacernos más fáciles esas labores. Dicho sea, ocupar una función MySQL.
Pero intenta... create algo y si te encuentras con problemas publicalas.

Como consejo: quizá el proceso (diagrama de flujo) sea similar a los ocupados en los selects que llenan otros selects... Por ahí ví un ejercicio de tres cumbo box... pero no recuerdo donde ... pero sé que es en JavaScript... Ve a la FAQ#1 de aquel foro y ve el proceso... ojo! que no te digo que sea ese código el que te sirva... sino que el flujo, la lógica, pueda ayudarte.
La mejor de las suertes!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 16/02/2005 a las 18:04
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 11:51.