Sammanfattning :i denna handledning kommer du att lära dig hur du använder SQLite UNION
operator för att kombinera resultatuppsättningar av två eller flera frågor till en enda resultatuppsättning.
Introduktion till SQLite UNION
operatör
Ibland behöver du kombinera data från flera tabeller till en komplett resultatuppsättning. Det kan vara för tabeller med liknande data inom samma databas eller så kanske du behöver kombinera liknande data från flera databaser.
För att kombinera rader från två eller flera frågor till en enda resultatuppsättning använder du SQLite UNION
operatör. Följande illustrerar den grundläggande syntaxen för UNION
operatör:
query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;
Code language: SQL (Structured Query Language) (sql)
Båda UNION
och UNION ALL
operatorer kombinerar rader från resultatuppsättningar till en enda resultatuppsättning. UNION
operatorn tar bort eliminera dubbletter av rader, medan UNION ALL
operatören inte.
Eftersom UNION ALL
Operatören tar inte bort dubbletter av rader, den körs snabbare än UNION
operatör.
Följande är regler för fackliga uppgifter:
- Antalet kolumner i alla frågor måste vara detsamma.
- Motsvarande kolumner måste ha kompatibla datatyper.
- Kolumnnamnen för den första frågan bestämmer kolumnnamnen för den kombinerade resultatuppsättningen.
GROUP BY
ochHAVING
satser tillämpas på varje enskild fråga, inte den slutliga resultatuppsättningen.ORDER BY
satsen tillämpas på den kombinerade resultatuppsättningen, inte inom den individuella resultatuppsättningen.
Observera att skillnaden mellan UNION
och JOIN
t.ex. INNER JOIN
eller LEFT JOIN
är att JOIN
sats kombinerar kolumner från flera relaterade tabeller, medan UNION
kombinerar rader från flera liknande tabeller.
Anta att vi har två tabeller t1 och t2 med följande 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öljande sats kombinerar resultatuppsättningarna för t1- och t2-tabellen med hjälp av UNION
operatör:
SELECT v1
FROM t1
UNION
SELECT v2
FROM t2;
Code language: SQL (Structured Query Language) (sql)
Här är resultatet:
Följande bild illustrerar UNION
drift av t1 och t2 tabeller:
Följande sats kombinerar resultatuppsättningarna för t1- och t2-tabellen med hjälp av UNION ALL
operatör:
SELECT v1
FROM t1
UNION ALL
SELECT v2
FROM t2;
Code language: SQL (Structured Query Language) (sql)
Följande bild visar utdata:
Följande bild illustrerar UNION ALL
drift av resultatuppsättningarna av t1- och t2-tabeller:
SQLite UNION
exempel
Låt oss ta några exempel på hur du använder UNION
operatör.
1) SQLite UNION
exempel
Denna sats använder UNION
operatör för att kombinera namn på anställda och kunder till en enda lista:
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Här är resultatet:
2) SQLite UNION
med ORDER BY
exempel
Det här exemplet använder UNION
operatör för att kombinera namnen på anställda och kunder till en enda lista. Dessutom använder den ORDER BY
klausul för att sortera namnlistan efter förnamn och efternamn.
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)
Här är resultatet:
I den här handledningen har du lärt dig hur du använder SQLite UNION
operator för att kombinera rader från resultatuppsättningar till en enda resultatuppsättning. Du lärde dig också skillnaderna mellan UNION
och UNION ALL
operatörer.