none
Estoy estudiando las consultas en mySQL y no se como realizar esta consulta. RRS feed

  • Pregunta

  • SQL server 2013 standar con servie pack 1, en ingles, windows 7 ultimate de 64 bits

    A continuación pondré las dos tablas que uso en la consulta y la consulta que he usado.

    +----+---------------+            +----+---------------+----------+
    |  id  |     nombre     |             | id   |    nombre    | idciudad |
    +----+---------------+            +----+---------------+----------+
    |  1 | Bilbao             |             |  1 | Bilbao Basket  |        1   |
    |  2 | Vitoria            |             |  2 | Estudiantes     |        4   |
    |  3 | San Sebastian |             |  3 | Real Madrid    |        4   |
    |  4 | Madrid            |             |  4 | Caja Laboral   |        2   |
    |  5 | Barcelona       |             |  5 | Barcelona       |        5    |
    |  6 | Badalona        |             |  6 | Lagun Aro       |        3   |
    +----+---------------+            |  7 | Joventud         |        6   |
               ciudad                       +----+---------------+----------+

                                                                Equipo

    5  – Saca   todas las   ciudades indicando   cuántos equipos tiene   cada una.

    SELECT c.nombre AS ciudad, COUNT(e.nombre) AS equipo FROM ciudad c 
    INNER JOIN equipo e ON e.idciudad=c.id 
    GROUP BY ciudad

    +---------------+--------+
    |     ciudad      | equipo |
    +---------------+--------+
    | Badalona      |      1     |
    | Barcelona     |      1     |
    | Bilbao          |      1     |
    | Madrid         |      2     |
    | San Sebastian |     1  |
    | Vitoria           |      1   |
    +---------------+--------+

    Es la 6 la que no se como hacer y requiere usar la consulta de la 5

    6  - Saca   todas las   ciudades indicando   cuántos equipos tiene   cada una, pero saca sólo   aquella que tengan más de uno.


    miércoles, 15 de mayo de 2019 11:52

Respuestas

  • Para recuperar los registros que tengan más de un equipo relacionado solo tienes que añadir una clausula Having:

    SELECT First (c.nombre) AS ciudad, COUNT(e.nombre) AS equipo FROM ciudad c 
    LEFT  JOIN equipo e ON e.idciudad=c.id 
    GROUP BY c.nombre
    HAVING COUNT(e.nombre)>1


    Saludos, Javier J

    • Marcado como respuesta Rodrigo M S miércoles, 15 de mayo de 2019 13:02
    miércoles, 15 de mayo de 2019 12:07

Todas las respuestas

  • Para recuperar los registros que tengan más de un equipo relacionado solo tienes que añadir una clausula Having:

    SELECT First (c.nombre) AS ciudad, COUNT(e.nombre) AS equipo FROM ciudad c 
    LEFT  JOIN equipo e ON e.idciudad=c.id 
    GROUP BY c.nombre
    HAVING COUNT(e.nombre)>1


    Saludos, Javier J

    • Marcado como respuesta Rodrigo M S miércoles, 15 de mayo de 2019 13:02
    miércoles, 15 de mayo de 2019 12:07
  • Muchas gracias por la ayuda y perdón por responder una hora después.

    Estoy mal acostumbrado a los foros lentos y no me esperaba que este fuera tan rápido.

    miércoles, 15 de mayo de 2019 13:01