sql >> Databasteknik >  >> RDS >> SQLite

SQLite Union

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 och HAVING 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.


  1. PostgreSQL motsvarighet till Oracle bulk collect

  2. Grundläggande om tabelluttryck, del 3 – Härledda tabeller, optimeringsöverväganden

  3. Skillnad mellan CTE och SubQuery?

  4. Göra dina databaskomponenter mycket tillgängliga (HA) via lastbalanserare