Mysql – Unir los resultados de dos consultar SELECT

En muchas ocasiones nos puede interesar unir el resultado de dos consultas. Ya sabemos que para unirlos, los resultados de las consultas deben tener el mismo número de campos y ser cada uno de ellos del mismo tipo (integer, float, string…). Pero cómo las unimos?

Aquí os dejo un ejemplo que creo que os puede mostrar de forma mas clara cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
SELECT nombre, goles
FROM (
    SELECT jugadora.nombre AS nombre, jugadora.goles AS goles
    FROM jugadora
    WHERE jugadora.temporada="2016-2017"
 
    UNION ALL
 
    SELECT jugador.nombre AS nombre, jugador.goles AS goles
    FROM jugador
    WHERE jugador.temporada="2016-2017"
) jugadores

Si lo queremos complicar un poco mas, le añadimos el GROUP BY

Tenemos las jugadoras por un lado, y las estrellas por otro. Algunas jugadoras, son catalogadas estrellas y juegan en ligas europeas. Para sumar todos los goles que ha realizado una jugadora, tanto en su liga como en la liga europea, podemos realizar la siguiente consulta (atentos a los GROUP BY):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT id, nombre, goles, SUM(goles)
FROM (
    SELECT jugadora.id AS id, jugadora.nombre AS nombre, goleadoras.goles AS goles
    FROM jugadora, goleadoras
    WHERE jugadora.id=goleadoras.jugadora_ID AND goleadoras.numgoles > 0
    GROUP BY id
 
    UNION ALL
 
    SELECT estrellas.id AS id, estrellas.nombre AS nombre, estrellas_goleadores.goles AS goles
    FROM estrellas, estrellas_goleadores
    WHERE estrellas.id=estrellas_goleadores.estrellas_ID AND estrellas_goleadores.numgoles > 0
    GROUP BY id
) jugadores
GROUP BY id

Espero que os facilite un poco las consultas.

Artículos relacionados

MySql – Convertir a minúsculas menos el prim... En muchas ocasiones los usuarios, muy animados, empiezan a introducir datos en su CMS (wordpress, prestashop...) y cuando ya han añadido todos los reg...
MySql – Modificar un texto determinado en el... La sentencia para modificar un texto determinado en un camp en Mysql es: UPDATE tabla SET campo = replace(campo, "texto a modificar", "texto nuev...
Mysql – UNION ALL y GROUP BY o ORDER BY Cuando en MySql se utiliza el UNION ALL, estamos uniendo los resultados de varias consultas. Para ello, debe cumplirse varias condiciones, entre la qu...
MySql – Borrar saltando restricción Foreign ... Cuando estamos trabajando en base de datos de pruebas (en local o servidor), en ocasiones y normalmente en base de datos muy pesadas, nos puede intere...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*