PostgreSQL LEFT JOIN zwraca wszystkie wiersze tabeli po lewej stronie złączenia oraz pasujące wiersze dla tabeli po prawej stronie złączenia. Wiersze, dla których nie ma pasującego wiersza po prawej stronie, wynik będzie zawierał wartość null. LEFT JOIN jest również znany jako LEFT OUTER JOIN.
Syntax:SELECT table1.column1, table1.column2, table2.column1, ....FROM table1 LEFT JOIN table2ON table1.matching_column = table2.matching_column;table1: First table.table2: Second tablematching_column: Column common to both the tables.
Przeanalizujmy powyższą składnię:
- Po pierwsze, używając instrukcji SELECT określamy tabele, z których chcemy wybrać dane.
- Po drugie, określamy tabelę główną.
- Po trzecie, określamy tabelę, do której dołącza tabela główna.
Poniższy diagram Venn ilustruje działanie klauzuli LEFT JOIN w PostgreSQL:
Na potrzeby tego artykułu będziemy korzystać z przykładowej bazy danych wypożyczalni DVD, która została wyjaśniona tutaj i można ją pobrać klikając w ten link w naszych przykładach.
Przyjrzyjrzyjmy się teraz kilku przykładom.
Przykład 1:
W tym miejscu użyjemy klauzuli LEFT JOIN do dołączenia tabeli „film” do tabeli „inventory”.
SELECT film.film_id, film.title, inventory_idFROM filmLEFT JOIN inventory ON inventory.film_id = film.film_id;
Output:
Przykład 2:
W tym miejscu użyjemy klauzuli LEFT JOIN, aby dołączyć tabelę „film” do tabeli „inwentarz” i użyjemy klauzuli WHERE, aby odfiltrować filmy, których nie ma w inwentarzu.
SELECT film.film_id, film.title, inventory_idFROM filmLEFT JOIN inventory ON inventory.film_id = film.film_idWHERE inventory.film_id IS NULL;
Output: