Podsumowanie: w tym samouczku dowiesz się, jak używać operatora MySQL UNION
do łączenia dwóch lub więcej zestawów wyników z wielu instrukcji SELECT
w jeden zestaw wyników.
MySQL UNION operator
MySQLUNION
operator pozwala połączyć dwa lub więcej zestawów wyników zapytań w jeden zestaw wyników., Poniżej przedstawiono składnię operatora UNION
:
aby połączyć zestaw wyników dwóch lub więcej zapytań za pomocą operatora UNION
, są to podstawowe zasady, których musisz przestrzegać:
- najpierw liczba i kolejność kolumn, które pojawiają się we wszystkich
SELECT
wypowiedzi muszą być takie same. - Po Drugie, typy danych kolumn muszą być takie same lub zgodne.,
domyślnie operatorUNION
usuwa zduplikowane wiersze, nawet jeśli nie podasz jawnie operatoraDISTINCT
.,
zobaczmy następujące przykładowe tabele: t1
I t2
:
poniższe polecenie łączy zestawy wyników zwrócone z t1
I t2
tabele:
Code language: SQL (Structured Query Language) (sql)
końcowy zestaw wyników zawiera odrębne wartości z oddzielnych zestawów wyników zwracanych przez zapytania:
Code language: SQL (Structured Query Language) (sql)
ponieważ wiersze o wartości 2 i 3 są duplikatami, UNION
usunął je i zachował tylko unikalne wartości.,
poniższy diagram Venna ilustruje połączenie dwóch zestawów wyników, które pochodzą z t1
I t2
tabel:
jeśli użyjesz UNION ALL
jawnie, zduplikowane wiersze, jeśli są dostępne, pozostają w wyniku. Ponieważ UNION ALL
nie musi obsługiwać duplikatów, działa szybciej niż UNION DISTINCT
.,
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
jak widać, duplikaty pojawiają się w połączonym zestawie wyników z powodu operacjiUNION ALL
.
Unia vs.połączenie
AJOIN
łączy zestawy wyników w poziomie, aUNION
dodaje zestawy wyników w pionie.,baza danych ple do demonstracji:
Załóżmy, że chcesz połączyć imię i nazwisko pracowników i klientów w jeden zestaw wyników, możesz użyć UNION
operator w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
jak widać z wyjścia, MySQL UNION
używa nazw kolumn pierwszej instrukcji SELECT
dla nagłówków kolumn wyjścia.,
Jeśli chcesz użyć innych nagłówków kolumn, musisz użyć aliasów kolumn jawnie w pierwszej instrukcji SELECT
, jak pokazano w poniższym przykładzie:
Ten przykład używa nagłówka kolumny pierwszego zapytania dla wyjścia. Używa funkcji CONCAT()
do łączenia imienia, spacji i nazwiska w pełną nazwę.,
MySQL UNION i kolejność według
Jeśli chcesz sortować zestaw wyników Unii, używasz ORDER BY
klauzula w ostatnim SELECT
Instrukcja pokazana w poniższym przykładzie: