Mentre manipulem dades en bases de dades, sovint acostumem a utilitzar els operadors de conjunts de SQL , per recuperar dades segons els nostres requisits combinant dues o més sentències SELECT. En aquest article sobre SQL UNION, parlaré de l’operador UNION utilitzat per recuperar dades en la següent seqüència:
Comencem!
Què és l'operador SQL UNION?
Com el seu nom indica, aquest operador / clàusula s’utilitza per combinar els resultats de dues o més sentències SELECT. Aquí, cada instrucció SELECT utilitzada a la sentència UNION ha de tenir el mateix nombre de columnes en el mateix ordre. A més, totes les columnes presents a les sentències SELECT han de tenir tipus de dades similars.
com comprovar el palíndrom a Java
La clàusula UNION només proporciona valors únics com a sortida. Per si de cas, voleu valors duplicats, heu d’utilitzar la clàusula UNION ALL.
Seguint amb aquest article sobre SQL UNION, entenem la sintaxi.
Sintaxi SQL UNION
Sintaxi UNION
SELECCIONAR Columna1, Columna2, Columna3, ..., ColumnaN DES de la Taula1 UNION SELECT Columna1, Columna2, Columna3, ..., ColumnaN DE Taula2
Sintaxi UNION ALL
SELECCIONAR Columna1, Columna2, Columna3, ..., ColumnaN DES de la Taula1 UNIÓ TOTS SELECCIONAR Columna1, Columna2, Columna3, ..., ColumnaN DE Taula2
Seguint amb aquest article, entenem les diferències entre UNION i UNION ALL.
Diferències entre SQL UNION i UNION ALL
UNIÓ | UNIÓ TOTS |
Combina dos o més conjunts de resultats i no conserva els valors duplicats. | Combina dos o més conjunts de resultats i manté els valors duplicats. |
Sintaxi: UNIÓ | Sintaxi: UNIÓ TOTS |
![]() |
A continuació, en aquest article sobre SQL UNION, entenem les diferents maneres d’utilitzar aquest operador.
Exemples de SQL UNION i UNION ALL
Per a una millor comprensió, examinaré les següents taules per mostrar-vos diferents exemples.
Taula d'empleats
EmpID | Nom | EmpAge | ciutat | Codi Postal | País |
1 | Emma | 23 | Berlín | 12109 | Alemanya |
2 | Rahul | 26 | Bombai | 400.015 | Índia |
3 | Aayra | 24 | Nova York | 10014 | USA |
4 | Joan | 32 | Londres | E1 7AE | UK |
5 | Derek | 29 | Nova York | 10012 | USA |
Taula de Projectes
ProjectID | Nom | Dies laborables | ciutat | Codi Postal | País |
1 | Projecte 1 | 10 | Berlín | 12109 | Alemanya |
2 | Projecte 2 | 7 | Bombai | 400.015 | Índia |
3 | Projecte 3 | 20 | Delhi | 110006 | Índia |
4 | Projecte 4 | 15 | Bombai | 400.015 | Índia |
5 | Projecte 5 | 28 | Berlín | 12109 | Alemanya |
Comencem amb exemples.
Exemples SQL UNION
Exemple d'operador UNION
Escriviu una consulta per recuperar ciutats diferents de la taula Empleats i projectes.
SELECCIONA Ciutat DE Treballadors UNIÓ SELECCIONA Ciutat DE Projectes ORDRE PER Ciutat
Sortida:
ciutat |
Berlín |
Delhi |
Londres |
Bombai |
Nova York |
UNION ALL Exemple d'operador
Escriviu una consulta per recuperar ciutats de la taula Empleats i projectes. Aquí s’han d’incloure valors duplicats.
com configurar un eclipsi
SELECCIONA Ciutat DELS SINDICATS DE TOTS ELS SELECCIONA Ciutat DE Projectes ORDRE PER CIUTAT
Sortida:
ciutat |
Berlín |
Berlín |
Berlín |
Delhi |
Londres |
Bombai |
Bombai |
Bombai |
Nova York |
Nova York |
A continuació, en aquest article, entenem com s'utilitza la clàusula UNION amb àlies SQL.
java deep copy vs superficial
UNION amb àlies SQL
S'utilitzen àlies SQLper donar a una taula o columna un nom temporal. Per tant, escrivim una consulta per enumerar tots els empleats i projectes únics.
SELECCIONA 'Empleat' AS Tipus, nom, ciutat, país FROM Employees UNION SELECT 'Projecte', nom, ciutat, país DE Projectes
Sortida:
Tipus | Nom | ciutat | País |
Empleat | Emma | Berlín | Alemanya |
Empleat | Rahul | Bombai | Índia |
Empleat | Aayra | Nova York | USA |
Empleat | Joan | Londres | UK |
Empleat | Derek | Nova York | USA |
Projecte | Projecte 1 | Berlín | Alemanya |
Projecte | Projecte 2 | Bombai | Índia |
Projecte | Projecte 3 | Delhi | Índia |
Projecte | Projecte 4 | Bombai | Índia |
Projecte | Projecte 5 | Berlín | Alemanya |
Clàusula UNIÓ amb WHERE
Escriviu una consulta per recuperar les diferents ciutats índies i els seus codis postals de la taula Empleats i Projectes.
SELECCIONA Ciutat, codi postal, país FROM Empleats WHERE País = 'Índia' UNION SELECCIONA ciutat, codi postal, país DE Projectes WHERE País = 'Índia' ORDRE PER CIUTAT
Sortida:
ciutat | Codi Postal | País |
Delhi | 110006 | Índia |
Bombai | 400.015 | Índia |
UNIÓ TOTS amb clàusula WHERE
Escriviu una consulta per recuperar ciutats índies i els seus codis postals de la taula Empleats i Projectes, on es permeten valors duplicats
SELECCIONA Ciutat, codi postal, país FROM Empleats WHERE País = 'Índia' UNION TOTS SELECCIONA ciutat, codi postal, país DE Projectes WHERE País = 'Índia' ORDRE PER CIUTAT
Sortida:
ciutat | Codi Postal | País |
Delhi | 110006 | Índia |
Bombai | 400.015 | Índia |
Bombai | 400.015 | Índia |
Bombai | 400.015 | Índia |
Per avançar en aquest article, entenguem com utilitzar les clàusules UNION i UNION ALL amb JOINS.JOINS a SQL són que s’utilitzen per combinar files de dues o més taules, basades en una columna relacionada entre aquestes taules.
UNIÓ amb JOINS
Es pot utilitzar l'operador SQL UNION per recuperar dades de dues taules diferents. Vaig a considerar la taula següent juntament amb la taula Empleats per a l'exemple.
Taula ProjectDetails
PID | Dies laborables | EmpID | CostforProject |
11 | 12 | 4 | 20000 |
22 | 16 | 3 | 35000 |
33 | 30 | 1 | 60000 |
44 | 25 | 3 | 45000 |
55 | 21 | 1 | 50000 |
SELECCIONA EmpID, nom, CostforProject DES DE LES EMPLEADES ESQUERRA UNIR-SE a ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION SELECCIONAR EmpID, nom, CostforProject DES D'EMPLEGATS UNIR-SE A ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID
Sortida:
EmpID | Nom | CostforProject |
1 | Emma | 60000 |
1 | Emma | 50000 |
2 | Rahul | NUL |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Joan | 20000 |
5 | Derek | NUL |
UNION ALL amb JOINS
Escriviu una consulta per recuperar la taula EmpID, Name i CostforProject de Employees i ProjectDetails, on es permeten valors duplicats.
SELECCIONA EmpID, Nom, CostforProject DES D'EMPLEGATS ESQUERRA UNEIX-SE a ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION TOTS SELECCIONA EmpID, Nom, CostforProject DES D'EMPLEGATS UNEIX-SE A PROJECTE ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID
Sortida:
EmpID | Nom | CostforProject |
1 | Emma | 60000 |
1 | Emma | 50000 |
2 | Rahul | NUL |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Joan | 20000 |
5 | Derek | NUL |
4 | Joan | 20000 |
3 | Aayra | 35000 |
1 | Emma | 60000 |
3 | Aayra | 35000 |
1 | Emma | 50000 |
Amb això, arribo al final d’aquest article sobre SQL UNION. Espero que us hagi agradat llegir aquest article sobre SQL UNION. Hem vist les diferents maneres d’utilitzar les ordres UNION i UNION ALL per ajudar-vos a escriure consultes. Si voleu obtenir més informació sobre MySQL i conegueu aquesta base de dades relacional de codi obert i, a continuació, consulteu la nostra que inclou formació en viu dirigida per un instructor i experiència en projectes reals. Aquesta formació us ajudarà a entendre MySQL en profunditat i us ajudarà a dominar el tema.
Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris de 'SQL UNION' i us respondré.