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

No repetir Campo en Consulta

Estas en el tema de No repetir Campo en Consulta en el foro de Mysql en Foros del Web. Buenas a todos! tengo una pequeña duda. Imaginaos que teneis una base de datos con dos tablas. En una tenemos(equipo): - id - nombre - ...
  #1 (permalink)  
Antiguo 22/10/2012, 11:34
 
Fecha de Ingreso: septiembre-2012
Ubicación: Palma de Mallorca
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 1
Pregunta No repetir Campo en Consulta

Buenas a todos! tengo una pequeña duda.

Imaginaos que teneis una base de datos con dos tablas.

En una tenemos(equipo):

- id
- nombre
- id_categoria (FK de LIGA)

Y en otra(liga):
-id
-nombre

Necesito hacer una consulta donde me saque un listado de todos los equipos de una liga, pero que al mostrarlos no me repita x veces el nombre de la liga por cada equipo que es de esa liga. Ejemplo grafico, necesito algo asi:

Liga : Española
-Equipo: Madrid
-Equipo : Barcelona

Liga: Inglesa
- Equipo : Arsenal

Si os fijais en cada registro que imprimo no me sale repetida el nombre de la liga por cada equipo, solo me sale arriba a modo de informacion y luego el listado de los equipos que la contienen.

Se agradece cualquier ayuda, muchas gracias!!!
  #2 (permalink)  
Antiguo 22/10/2012, 12:07
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: No repetir Campo en Consulta

Hola jrBarcelo:

Hay muchas formas de hacer esto, una de ellas sería con UNION 1 agregando un campo para ordenar los registros, más o menos así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM liga;
  2. +------+----------+
  3. | id   | nombre   |
  4. +------+----------+
  5. |    1 | Española |
  6. |    2 | Inglesa  |
  7. +------+----------+
  8. 2 rows in set (0.00 sec)
  9.  
  10. mysql> SELECT * FROM equipo;
  11. +------+-----------+--------------+
  12. | id   | nombre    | id_categoria |
  13. +------+-----------+--------------+
  14. |    1 | Madrid    |            1 |
  15. |    2 | Barcelona |            1 |
  16. |    3 | Arsenal   |            2 |
  17. +------+-----------+--------------+
  18. 3 rows in set (0.00 sec)
  19.  
  20. mysql> SELECT 1 orden, id, nombre FROM liga
  21.     -> UNION
  22.     -> SELECT 2 orden, id_categoria, nombre FROM equipo
  23.     -> ORDER BY  2, 1, 3;
  24. +-------+------+----------+
  25. | orden | id   | nombre   |
  26. +-------+------+----------+
  27. |     1 |    1 | Española |
  28. |     2 |    1 | Barcelona|
  29. |     2 |    1 | Madrid   |
  30. |     1 |    2 | Inglesa  |
  31. |     2 |    2 | Arsenal  |
  32. +-------+------+----------+
  33. 5 rows in set (0.00 sec)

Faltaría agregar las etiquetas Liga o Equipo, pero no creo que tengas problemas para hacer eso.

Saludos
Leo.
  #3 (permalink)  
Antiguo 22/10/2012, 15:38
 
Fecha de Ingreso: septiembre-2012
Ubicación: Palma de Mallorca
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: No repetir Campo en Consulta

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola jrBarcelo:

Hay muchas formas de hacer esto, una de ellas sería con UNION 1 agregando un campo para ordenar los registros, más o menos así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM liga;
  2. +------+----------+
  3. | id   | nombre   |
  4. +------+----------+
  5. |    1 | Española |
  6. |    2 | Inglesa  |
  7. +------+----------+
  8. 2 rows in set (0.00 sec)
  9.  
  10. mysql> SELECT * FROM equipo;
  11. +------+-----------+--------------+
  12. | id   | nombre    | id_categoria |
  13. +------+-----------+--------------+
  14. |    1 | Madrid    |            1 |
  15. |    2 | Barcelona |            1 |
  16. |    3 | Arsenal   |            2 |
  17. +------+-----------+--------------+
  18. 3 rows in set (0.00 sec)
  19.  
  20. mysql> SELECT 1 orden, id, nombre FROM liga
  21.     -> UNION
  22.     -> SELECT 2 orden, id_categoria, nombre FROM equipo
  23.     -> ORDER BY  2, 1, 3;
  24. +-------+------+----------+
  25. | orden | id   | nombre   |
  26. +-------+------+----------+
  27. |     1 |    1 | Española |
  28. |     2 |    1 | Barcelona|
  29. |     2 |    1 | Madrid   |
  30. |     1 |    2 | Inglesa  |
  31. |     2 |    2 | Arsenal  |
  32. +-------+------+----------+
  33. 5 rows in set (0.00 sec)

Faltaría agregar las etiquetas Liga o Equipo, pero no creo que tengas problemas para hacer eso.

Saludos
Leo.
Muchas gracias Leonardo. No tenia en cuenta ese tipo de consulta, vere como queda. A ver si con un volumen elevado de datos funciona bien! Gracias!!

Etiquetas: registro, repetir, sql, unicos
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 06:49.