sammanfattning: i den här handledningen lär du dig hur du använder MySQL UNION
operatör för att kombinera två eller flera resultatuppsättningar från flera SELECT
uttalanden till en enda resultatuppsättning.
MySQL UNION operator
MySQLUNION
operatör kan du kombinera två eller flera resultatuppsättningar av frågor till en enda resultatuppsättning., Följande illustrerar syntaxen förUNION
– operatören:
för att kombinera resultatuppsättningen av två eller flera frågor med hjälp avUNION
– operatören måste det här vara de grundläggande reglerna som du måste följa:
- först måste antalet och orderna för kolumner som visas i alla
SELECT
– satser vara desamma. - för det andra måste datatyperna av kolumner vara desamma eller kompatibla.,
som standard tarUNION
– operatören bort dubbla rader även om du inte angerDISTINCT
– operatören explicit.,
låt oss se följande exempeltabeller:t1
ocht2
:
följande uttalande kombinerar resultatuppsättningar som returneras frånt1
ocht2
tabeller:
Code language: SQL (Structured Query Language) (sql)
den slutliga resultatuppsättningen innehåller de distinkta värdena från separata resultatuppsättningar som returneras av frågorna:
Code language: SQL (Structured Query Language) (sql)
eftersom raderna med värde 2 och 3 är dubbletter, togUNION
bort dem och behöll endast unika värden.,
följande Venn-diagram illustrerar en union av två resultatuppsättningar som kommer från t1
och t2
tabeller:
Om du inte vill ha mer information, kan du läsa mer om använd UNION ALL
explicit, de dubbla raderna, om de är tillgängliga, förblir i resultatet. EftersomUNION ALL
inte behöver hantera dubbletter, fungerar det snabbare änUNION DISTINCT
.,
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
som du kan se visas dubbletterna i den kombinerade resultatuppsättningen på grund av funktionen UNION ALL
.
UNION vs. JOIN
aJOIN
kombinerar resultatuppsättningar horisontellt, aUNION
lägger resultatet vertikalt.,ple-databas för demonstrationen:
Antag att du vill kombinera medarbetarnas och kundernas förnamn och efternamn till en enda resultatuppsättning, kan du använda operatören UNION
enligt följande:
Code language: SQL (Structured Query Language) (sql)
som du kan se från utdata använder MySQL UNION
kolumnnamnen på det första SELECT
– uttalandet för kolumnrubrikerna av utgången.,
om du vill använda andra kolumnrubriker måste du använda kolumnalias uttryckligen i det första SELECT
– uttalandet som visas i följande exempel:
det här exemplet använder kolumnrubriken i den första frågan för utmatningen. Den använder funktionenCONCAT()
för att sammanfoga förnamn, utrymme och efternamn till ett fullständigt namn.,
MySQL UNION och ORDER BY
om du vill sortera resultatuppsättningen för en union använder du en ORDER BY
– klausul i den sista SELECT
– sats som visas i följande exempel:
Lägg märke till att om du placerar ORDER BY
– klausulen i varje SELECT
– sats kommer den inte att påverka ordningen på raderna i den slutliga resultatuppsättningen.,
för att skilja mellan anställda och kunder kan du lägga till en kolumn som visas i följande fråga:
MySQL ger dig också ett alternativ för att sortera ett resultatuppsättning baserat på kolumnposition med hjälp av ORDER BY
– klausulen enligt följande:
det är dock inte en god praxis att sortera resultatet som anges efter kolumnposition.
i den här guiden har du lärt dig hur du använder MySQL UNION
uttalande för att kombinera data från flera frågor till en enda resultatuppsättning.,
- var den här handledningen till hjälp?
- YesNo