sql >> Database >  >> RDS >> SQLite

SQLite Unie

Samenvatting :in deze tutorial leer je hoe je SQLite UNION . gebruikt operator om resultatensets van twee of meer zoekopdrachten te combineren in een enkele resultaatset.

Inleiding tot SQLite UNION telefoniste

Soms moet u gegevens uit meerdere tabellen combineren tot een volledige resultatenset. Het kan zijn voor tabellen met vergelijkbare gegevens binnen dezelfde database of misschien moet u vergelijkbare gegevens uit meerdere databases combineren.

Om rijen van twee of meer query's te combineren in een enkele resultaatset, gebruikt u SQLite UNION exploitant. Het volgende illustreert de basissyntaxis van de UNION operator:

query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;Code language: SQL (Structured Query Language) (sql)

Beide UNION en UNION ALL operators combineren rijen uit resultaatsets in één resultaatset. De UNION operator verwijdert elimineert dubbele rijen, terwijl de UNION ALL operator niet.

Omdat de UNION ALL operator verwijdert geen dubbele rijen, het werkt sneller dan de UNION telefoniste.

De volgende regels zijn voor vakbondsgegevens:

  • Het aantal kolommen in alle zoekopdrachten moet hetzelfde zijn.
  • De corresponderende kolommen moeten compatibele gegevenstypen hebben.
  • De kolomnamen van de eerste zoekopdracht bepalen de kolomnamen van de gecombineerde resultatenset.
  • De GROUP BY en HAVING clausules worden toegepast op elke individuele zoekopdracht, niet op de uiteindelijke resultaatset.
  • De ORDER BY clausule wordt toegepast op de gecombineerde resultatenset, niet binnen de individuele resultaatset.

Merk op dat het verschil tussen UNION en JOIN bijv. INNER JOIN of LEFT JOIN is dat de JOIN clausule combineert kolommen uit meerdere gerelateerde tabellen, terwijl UNION combineert rijen uit meerdere vergelijkbare tabellen.

Stel dat we twee tabellen t1 en t2 hebben met de volgende structuren:

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)

De volgende instructie combineert de resultatensets van de t1- en t2-tabel met behulp van de UNION operator:

SELECT v1
  FROM t1
UNION
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Hier is de uitvoer:

De volgende afbeelding illustreert de UNION bediening van t1- en t2-tabellen:

De volgende instructie combineert de resultatensets van de tabel t1 en t2 met behulp van de UNION ALL operator:

SELECT v1
  FROM t1
UNION ALL
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

De volgende afbeelding toont de uitvoer:

De volgende afbeelding illustreert de UNION ALL werking van de resultaatsets van de tabellen t1 en t2:

SQLite UNION voorbeelden

Laten we enkele voorbeelden nemen van het gebruik van de UNION telefoniste.

1) SQLite UNION voorbeeld

Deze verklaring gebruikt de UNION operator om namen van werknemers en klanten te combineren in een enkele lijst:

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;

Code language: SQL (Structured Query Language) (sql)

Hier is de uitvoer:

2) SQLite UNION met ORDER BY voorbeeld

Dit voorbeeld gebruikt de UNION operator om de namen van de werknemers en klanten te combineren in één lijst. Bovendien gebruikt het de ORDER BY clausule om de namenlijst te sorteren op voornaam en achternaam.

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)

Hier is de uitvoer:

In deze tutorial heb je geleerd hoe je SQLite UNION gebruikt operator om rijen uit resultaatsets te combineren in een enkele resultaatset. Je hebt ook de verschillen geleerd tussen UNION en UNION ALL operators.


  1. Oracle Pl/SQL:Loop door XMLTYPE-knooppunten

  2. Hoe MONTHNAME() werkt in MariaDB

  3. String aaneenschakeling in MySQL

  4. Hoe maak ik een lijst van actieve / open verbindingen in Oracle?