..


Linki sponsorowane

Korzystanie UNION do połączenia wyników z dwóch tabel

Artykuł napisany przez Max Bossi

Język SQL oferuje nam dość prosty sposób połączyć w tym samym SELECT, wyniki dwóch różnych tabel.

Aby to osiągnąć, nadszedł czas, aby wykorzystać all'opertore Unii, które będzie w rzeczywistości, związek z wyników uzyskanych przez odpytywanie dwie tabele.

Należy pamiętać, że aby być stosowane właściwie, to czas, że operator UNION:

  • że tabele są badane na samą liczbę kolumn;
  • zwraca się do kolumn o tej samej nazwie;
  • że wymagane kolumn w dwóch tabelach są zgodne typy danych;
Oto przykład: powiedzmy, że z konieczności działania na bazie danych hipotetycznych biura podróży i zakładamy, że nasz DB zawiera tylko dwie tabele:
  • hotel_italia
    • nazwa
    • gwiazdki
    • miasto
    • naród
  • hotel_europa
    • nazwa
    • gwiazdki
    • miasto
    • naród
Załóżmy teraz, że klient chce, byśmy wiedzieli, czy oferty hoteli we Włoszech i w Europie:





 SELECT nazwa, gwiazdy, miasto, kraj







 Z hotel_italia







 UNII







 SELECT nazwa, gwiazdy, miasto, kraj







 Z hotel_europa



Z tego zapytania otrzymamy pełną listę wszystkich hoteli w dwie tabele:

nazwa gwiazdki miasto naród
Hotel Cavour 4 Rzym PL
Hotel Miramare 2 Katolicki PL
Hotel Manzoni 2 Mediolan PL
Hotel Espana 3 Madryt ES
Hilton 5 Londyn Wielkiej Brytanii
Hotel am Schlossgarten 4 Stuttgart DE

Uwaga: należy pamiętać, że Unia nie wykazuje żadnych zduplikowanych rekordów (domyślnie działa tak, jakby była SELECT DISTINCT ), a jeśli chcesz zduplikowane rekordy pokazują również, (wracam do naszego przykładu, w jednym z hoteli w tym zarówno w tabeli w tym hotel_italia hotel_europa) będzie musiał użyć UNION ALL.

Sortowanie i ograniczyć wyniki wynikające z UNII

Załóżmy, że wyniki za pomocą UNION i wiele chcesz, aby być ograniczona do określonej liczby. W jaki sposób? Oto rozwiązanie:

 



 SELECT * FROM







 (SELECT nazwisko, gwiazdy, miasto, kraj Z hotel_italia







 UNII







 SELECT nazwa, gwiazdy, miasto, kraj Z hotel_europa)







 AS Hotel







 ORDER BY DESC LIMIT 10 gwiazdek

 
Zasadniczo traktujemy wyniki wynikające z unii dwóch lub więcej tabel, jak gdyby były wynikiem jednej tabeli, w ten sposób możemy używać standardowych sortowania i limit.

W tej samej kategorii ...
E-Learning
MS Access (zaawansowane) MS Access (zaawansowane)
Dowiedz się, jak tworzyć i zarządzać bazami danych szybko i łatwo. Począwszy od 29 €.
MySQL (Kurs) MySQL (Kurs)
Zarządzanie bazą danych open-source. Od 39 €.
SQL i bazy danych (pole) SQL i bazy danych (pole)
Tworzenie i zarządzanie relacyjnymi bazami danych. Od 39 €.
Linki sponsorowane