Oversigt :i denne vejledning lærer du, hvordan du bruger SQLite UNION
operator til at kombinere resultatsæt af to eller flere forespørgsler til et enkelt resultatsæt.
Introduktion til SQLite UNION
operatør
Nogle gange skal du kombinere data fra flere tabeller til et komplet resultatsæt. Det kan være til tabeller med lignende data i den samme database, eller måske skal du kombinere lignende data fra flere databaser.
For at kombinere rækker fra to eller flere forespørgsler til et enkelt resultatsæt, bruger du SQLite UNION
operatør. Det følgende illustrerer den grundlæggende syntaks for UNION
operatør:
query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;
Code language: SQL (Structured Query Language) (sql)
Begge UNION
og UNION ALL
operatører kombinerer rækker fra resultatsæt til et enkelt resultatsæt. UNION
operatør fjerner eliminer duplikerede rækker, mens UNION ALL
operatøren ikke.
Fordi UNION ALL
operatøren fjerner ikke duplikerede rækker, den kører hurtigere end UNION
operatør.
Følgende er regler for fagforeningsdata:
- Antallet af kolonner i alle forespørgsler skal være det samme.
- De tilsvarende kolonner skal have kompatible datatyper.
- Kolonnenavnene for den første forespørgsel bestemmer kolonnenavnene for det kombinerede resultatsæt.
GROUP BY
ogHAR
klausuler anvendes på hver enkelt forespørgsel, ikke det endelige resultatsæt.ORDER BY klausul anvendes på det kombinerede resultatsæt, ikke inden for det individuelle resultatsæt.
Bemærk, at forskellen mellem UNION
og JOIN
f.eks. INNER JOIN
eller LEFT JOIN
er at JOIN
klausul kombinerer kolonner fra flere relaterede tabeller, mens UNION
kombinerer rækker fra flere lignende tabeller.
Antag, at vi har to tabeller t1 og t2 med følgende strukturer:
CREATE TABLE t1(
v1 INT
);
INSERT INTO t1(v1)
VALUES(1),(2),(3);
CREATE TABLE t2(
v2 INT
);
INSERT INTO t2(v2)
VALUES(2),(3),(4);
Code language: SQL (Structured Query Language) (sql)
Følgende sætning kombinerer resultatsættene af t1- og t2-tabellen ved hjælp af UNION
operatør:
SELECT v1
FROM t1
UNION
SELECT v2
FROM t2;
Code language: SQL (Structured Query Language) (sql)
Her er outputtet:
Det følgende billede illustrerer UNION
drift af t1- og t2-tabeller:
Følgende sætning kombinerer resultatsættene af t1- og t2-tabellen ved hjælp af UNION ALL
operatør:
SELECT v1
FROM t1
UNION ALL
SELECT v2
FROM t2;
Code language: SQL (Structured Query Language) (sql)
Følgende billede viser output:
Det følgende billede illustrerer UNION ALL
drift af resultatsættene af t1- og t2-tabeller:
SQLite UNION
eksempler
Lad os tage nogle eksempler på brug af UNION
operatør.
1) SQLite UNION
eksempel
Denne sætning bruger UNION
operatør for at kombinere navne på medarbejdere og kunder til en enkelt liste:
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Her er outputtet:
2) SQLite UNION
med ORDER BY
eksempel
Dette eksempel bruger UNION
operatør til at kombinere navnene på medarbejdere og kunder til en enkelt liste. Derudover bruger den ORDER BY
klausul for at sortere navnelisten efter fornavn og efternavn.
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers
ORDER BY FirstName, LastName;
Code language: SQL (Structured Query Language) (sql)
Her er outputtet:
I denne øvelse har du lært, hvordan du bruger SQLite UNION
operator til at kombinere rækker fra resultatsæt til et enkelt resultatsæt. Du lærte også forskellene mellem UNION
og UNION ALL
operatører.