PostgreSQL LEFT JOIN (Polski)

Podsumowanie: w tym samouczku dowiesz się, jak używać klauzuli PostgreSQL LEFT JOIN do wybierania danych z wielu tabel.

Wprowadzenie do PostgreSQL LEFT JOIN clause

Załóżmy, że masz dwie tabele:A IB.,

każdy wiersz w tabeli Amoże mieć zero lub wiele odpowiadających wierszy w tabeli Bpodczas gdy każdy wiersz w tabeli Bma jeden i tylko jeden odpowiadający wiersz w tabeli A.

aby wybrać dane z tabeli Aktóre mogą lub nie muszą mieć odpowiednie wiersze w tabeli B, należy użyć klauzuli LEFT JOIN.,

poniższa instrukcja ilustruje składnię LEFT JOIN, która łączy tabelę A z tabelą B :

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

aby połączyć tabelę A z tabelą B tabela używając lewego połączenia, wykonaj następujące kroki:

  • najpierw określ kolumny w obu tabelach, z których chcesz wybrać dane w klauzuli SELECT.
  • Po Drugie, określ lewą tabelę (tabela A) w klauzuliFROM.,
  • Po Trzecie, określ właściwą tabelę (table B) w klauzuliLEFT JOIN I warunek połączenia po słowie kluczowymON.

klauzulaLEFT JOIN rozpoczyna wybór danych z lewej tabeli. Dla każdego wiersza w lewej tabeli porównuje wartość w kolumnie pka z wartością każdego wiersza w kolumnie fka w prawej tabeli.,

Jeśli te wartości są równe, lewa klauzula join tworzy nowy wiersz zawierający kolumny, które pojawiają się w klauzuli SELECT I dodaje ten wiersz do zestawu wyników.

Jeśli te wartości nie są równe, lewa klauzula join tworzy również nowy wiersz zawierający kolumny, które pojawiają się w SELECT klauzula. Dodatkowo wypełnia kolumny pochodzące z prawej tabeli znakiem NULL.,

poniższy diagram Venna ilustruje działanie klauzuli LEFT JOIN:

zauważ, że LEFT JOIN jest również określany jako LEFT OUTER JOIN.

PostgreSQL LEFT JOIN examples

spójrzmy na poniższe tabelefilm Iinventory z przykładowej bazy danych.,

każdy wiersz w tabelifilm może mieć zero lub wiele wierszy w tabeli iv id=”7eb2379b8b”

table. Każdy wiersz w tabeliinventory ma jeden i tylko jeden wiersz w tabelifilm.

kolumnafilm_id ustanawia połączenie między tabelamifilm Iinventory.,

poniższe polecenie używa LEFT JOIN klauzuli do połączenia film tabeli z inventorytabeli:

gdy wiersz z tabeli film nie ma pasującego wiersza w tabeli inventory, wartość tabeli inventory_id kolumna tego wiersza to NULL.,

poniższe polecenie dodaje WHERE klauzulę znajdującą filmy, których nie ma w spisie:

poniższe polecenie zwraca ten sam wynik., Różnica polega na tym, że używa aliasów tabel, aby zapytanie było bardziej zwięzłe:

Jeśli obie tabele mają tę samą nazwę kolumny używaną w ON klauzula, możesz użyć składni USING w następujący sposób:

ta technika jest przydatna, gdy chcesz wybrać wiersze z jednej tabeli, które nie mają pasujących wierszy w innej tabeli.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Przejdź do paska narzędzi