Ostatnia aktualizacja: 1 października 2024
Czas czytania: 4 min
Spis treści

Co to jest OUTER JOIN?

OUTER JOIN jest operacją łączenia tabel w SQL, która zwraca wszystkie wiersze z jednej tabeli (tabeli lewej) oraz tylko te wiersze z drugiej tabeli (tabeli prawej), które spełniają warunek łączenia. W przeciwieństwie do INNER JOIN, który zwraca tylko wiersze z obu tabel, które mają dopasowane wartości w kolumnach łączenia, OUTER JOIN zachowuje wiersze z obu tabel, które nie mają dopasowań.

W BigQuery, OUTER JOIN jest dostępny w trzech wariantach:

  • LEFT OUTER JOIN: Zwraca wszystkie wiersze z lewej tabeli i tylko te wiersze z prawej tabeli, które mają dopasowania w kolumnach łączenia. W przypadku braku dopasowania, wartości w kolumnach z prawej tabeli są wypełniane wartościami NULL.
  • RIGHT OUTER JOIN: Zwraca wszystkie wiersze z prawej tabeli i tylko te wiersze z lewej tabeli, które mają dopasowania w kolumnach łączenia. W przypadku braku dopasowania, wartości w kolumnach z lewej tabeli są wypełniane wartościami NULL.
  • FULL OUTER JOIN: Zwraca wszystkie wiersze z obu tabel, niezależnie od tego, czy mają dopasowania w kolumnach łączenia. W przypadku braku dopasowania, wartości w kolumnach z obu tabel są wypełniane wartościami NULL.

Zastosowanie OUTER JOIN

OUTER JOIN jest używany w różnych scenariuszach analizy danych, w tym:

  • Łączenie tabel, które mogą mieć brakujące dane.
  • Analizowanie danych z różnych źródeł, które mogą nie być w pełni zsynchronizowane.
  • Tworzenie kompleksowych zestawień danych, które obejmują wszystkie możliwe przypadki.
  • Wykonywanie analizy trendów, która uwzględnia wszystkie dane, nawet jeśli niektóre są niekompletne.

Przykład użycia w BigQuery

Załóżmy, że mamy dwie tabele w BigQuery:

Nazwa tabeli Kolumny
Klienci ID_Klienta, Imię, Nazwisko
Zamówienia ID_Zamówienia, ID_Klienta, Data_Zamówienia

Tabela „Klienci” zawiera informacje o klientach, a tabela „Zamówienia” zawiera informacje o złożonych przez nich zamówieniach.

Chcemy uzyskać listę wszystkich klientów, wraz z informacją o ich ostatnim zamówieniu (jeśli takie istnieje).

W tym celu możemy użyć LEFT OUTER JOIN, aby połączyć te dwie tabele:


SELECT
k.ID_Klienta,
k.Imię,
k.Nazwisko,
MAX(z.Data_Zamówienia) AS Ostatnie_Zamówienie
FROM
`projekt.dataset.Klienci` AS k
LEFT OUTER JOIN
`projekt.dataset.Zamówienia` AS z ON k.ID_Klienta = z.ID_Klienta
GROUP BY
k.ID_Klienta, k.Imię, k.Nazwisko
ORDER BY
k.ID_Klienta

Ten kod SQL zwróci listę wszystkich klientów, wraz z datą ich ostatniego zamówienia. Jeśli klient nie złożył żadnego zamówienia, kolumna „Ostatnie_Zamówienie” będzie miała wartość NULL.

Najczęstsze błędy i sposoby ich unikania

Najczęstsze błędy popełniane przy użyciu OUTER JOIN w BigQuery to:

  • Niepoprawne określenie warunku łączenia: Upewnij się, że warunek łączenia jest prawidłowy i że kolumny łączenia mają zgodny typ danych.
  • Niepoprawne użycie funkcji agregujących: Jeśli używasz funkcji agregujących, takich jak MAX() lub SUM(), upewnij się, że grupy danych są prawidłowo określone.
  • Niepoprawne użycie funkcji NULL: Upewnij się, że prawidłowo obsługujesz wartości NULL w wynikach zapytania.

Optymalizacje i najlepsze praktyki

Aby zoptymalizować zapytania z użyciem OUTER JOIN w BigQuery, należy:

  • Używać indeksów w kolumnach łączenia.
  • Określać warunki łączenia w sposób jak najbardziej precyzyjny.
  • Unikać używania funkcji agregujących, jeśli to możliwe.
  • Korzystać z funkcji NULL w sposób strategiczny, aby uniknąć niepotrzebnych obliczeń.

Porównanie z innymi dialektami SQL

Sposób użycia OUTER JOIN w BigQuery jest zgodny z większością innych dialektów SQL, takich jak MySQL i PostgreSQL. Jednakże, niektóre dialekty SQL mogą mieć dodatkowe opcje lub funkcje związane z OUTER JOIN, które nie są dostępne w BigQuery.

Udostępnij wpis
Newsletter

Zapisz się do Newslettera

Zapisując się, wyrażasz zgodę na przetwarzanie Twoich danych do celów marketingowych, zgodnie z naszą polityką prywatności.

Optymalizacja kosztów BigQuery

Poradnik

10 sposobów na optymalizację kosztów BigQuery
Looker Studio Dashoard

Poradnik

Looker Studio dla Początkujących – Co to jest Looker Studio i jak z niego korzystać?
Grafika prezentująca BigQuery

Tutorial

BigQuery dla początkujących. Jakie są sposoby przechowywania danych w BigQuery?
Google Search Console Dashboard

Dashboard analityczny

Dashboard analityczny SEO – Looker Studio
Grafika pokazująca 5 dobrych praktyk podczas tworzenia narzędzia Business Intelligence

Poradnik

Najlepsze praktyki tworzenia dashboardów analitycznych i biznesowych
Grafika pokazująca odwrócony proces ETL

Poradnik

Replikacja danych do BigQuery  – Jedyny przewodnik po procesach ETL i ELT w GCP jakiego potrzebujesz
Ikona plików cookies

Ustawienia plików cookies

Używamy plików cookies, aby zapewnić Ci najlepsze wrażenia z korzystania z naszej strony. Możesz wybrać, które pliki cookies chcesz zaakceptować.
Ikona plików cookies

Informacje o plikach cookies

Szanujemy Twoją prywatność

Używamy plików cookies lub podobnych technologii w celu zapewnienia Ci dostępu do serwisu, usprawniania jego działania, profilowania i wyświetlania treści dopasowanych do Twoich potrzeb. W każdej chwili możesz zmienić ustawienia plików cookies lub podobnych technologii poprzez zmianę ustawień prywatności w przeglądarce bądź aplikacji lub zmianę swoich preferencji w zakładce Ustawienia cookies w stopce strony. Pamiętaj, że zmiana ta może spowodować brak dostępu do niektórych funkcji serwisu.
Dane osobowe dotyczące korzystania z serwisu, w tym zapisywane i odczytywane z plików cookies lub podobnych technologii będą przetwarzane w celu zapewnienia dostępu do serwisu, w celach marketingowych, w tym profilowania, w celach wewnętrznych związanych ze świadczeniem usług oraz prowadzeniem działalności gospodarczej, w tym dowodowych, analitycznych i statystycznych, wykrywania i eliminowania nadużyć oraz w celu wykonywania obowiązków wynikających z przepisów prawa.
Przysługuje Ci prawo do dostępu do danych, ich usunięcia, ograniczenia przetwarzania, przenoszenia, sprzeciwu, sprostowania oraz cofnięcia zgód w każdym czasie. Szczegółowe informacje dotyczące przetwarzania danych oraz przysługujących Ci uprawnień, informacje dotyczące plików cookies lub podobnych technologii, w tym dotyczące możliwości zarządzania ustawieniami prywatności, znajdują się w Polityce Prywatności.