PostgreSQL Samlingstyper: Indre, Ydre, Venstre, Højre
⚡ Smart opsummering
PostgreSQL Joins henter og kombinerer rækker fra to eller flere tabeller ved hjælp af en delt nøgle og inkluderer indre joins såsom theta, EQUI og natural, plus ydre joins, der dækker venstre, højre og fulde resultater.

Hvad er joins in PostgreSQL?
PostgreSQL Sammenføjninger bruges til at hente data fra mere end én tabel. Med Joins er det muligt for os at kombinere SELECT- og JOIN-sætningerne til en enkelt sætning. En JOIN-betingelse tilføjes til sætningen, og alle rækker, der opfylder betingelserne, returneres. Værdierne fra forskellige tabeller kombineres baseret på fælles kolonner. Den fælles kolonne er for det meste en primærnøgle i den første tabel og en fremmednøgle i den anden tabel.
PostgreSQL Deltag typer
Der er to typer join-in PostgreSQL:
- Indvendige sammenføjninger
- Ydre sammenføjninger
PostgreSQL Indvendig sammenføjning
Der er 3 typer af Inner Joins in PostgreSQL:
- Theta slutter sig
- Naturlig sammenføjning
- EQUI tilslutte sig
Theta Deltag
En theta join giver mulighed for at forbinde to tabeller baseret på den betingelse, der er repræsenteret af theta. Theta joins kan fungere med alle sammenligningsoperatører. I de fleste tilfælde omtales theta-sammenføjningen som indre sammenføjning.
Theta join er den mest grundlæggende type JOIN. Det vil returnere alle rækker fra tabellerne, hvor JOIN-betingelsen er opfyldt.
Syntaks:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Overvej følgende tabeller i demodatabasen:
Bestil:
Pris:
Vi ønsker at se navnet på hver bog og den tilsvarende pris. Vi kan køre følgende kommando:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Dette vil returnere følgende:
Kun 3 rækker opfyldte sammenføjningsbetingelsen.
EQUI Deltag
EQUI-sammenføjningen giver os en måde at forbinde to tabeller baseret på primær nøgle/fremmednøgleforhold. For eksempel:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Dette vil returnere følgende:
Poster er blevet returneret fra begge tabeller baseret på de fælles kolonner, det vil sige id-kolonnen.
Naturlig Deltag
Denne type join giver os en anden måde at skrive en EQUI join på. Vi kan forbedre vores tidligere eksempel ved at tilføje nøgleordet NATURAL som vist nedenfor:
SELECT * FROM Book NATURAL JOIN Price;
Dette vil returnere følgende:
Kun én id-kolonne er blevet returneret. NATURAL JOIN var i stand til at bemærke, at id-kolonnen er fælles i de to tabeller. Kun én blev returneret.
PostgreSQL Ydre tilslutning
Der er 3 typer Outer Joins in PostgreSQL:
- Venstre ydre samling
- Højre ydre samling
- Fuld ydre tilslutning
PostgreSQL Venstre ydre samling
LEFT OUTER JOIN returnerer alle rækker i tabellen på venstre side og kun rækkerne i højre side tabel, hvor sammenføjningsbetingelsen er opfyldt.
Syntaks:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Vi skal se navnet på hver bog og den tilsvarende pris. Vi kan køre følgende kommando:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Dette returnerer følgende:
Alle de 4 rækker i bogtabellen er returneret. Kun 3 rækker fra pristabellen opfyldte sammenføjningsbetingelsen. Derfor blev de returneret. Den sidste bog har ingen tilsvarende prisværdi.
PostgreSQL Højre ydre samling
RIGHT OUTER JOIN returnerer alle rækker i tabellen på højre side og rækker i tabellen på venstre side, hvor sammenføjningsbetingelsen er opfyldt.
Syntaks:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
For eksempel:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Dette returnerer følgende:
Alle rækker i Price-tabellen er blevet returneret. Kun de rækker i Book-tabellen, der opfyldte join-betingelsen, blev returneret. Den 3. række har ingen værdi for name, da der ikke blev fundet noget match.
Fuld ydre tilslutning PostgreSQL
Denne type JOIN vil returnere alle rækker i tabellen på venstre side og alle rækker i tabellen på højre side med nuller, hvor joinbetingelsen ikke er opfyldt.
Syntaks:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
For eksempel:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Dette returnerer følgende:
Alle rækker fra alle tabeller er blevet returneret, med nuller, hvor der ikke blev fundet nogen match.
Bruger pgAdmin
Ovenstående opgaver kan udføres i pgAdmin som følger. De følgende afsnit gennemgår hver join-type trin for trin.
pgAdmin Inner Join
Trinene nedenfor viser, hvordan du kører hver inner join-variant i pgAdmin.
Sådan bruger du Theta Deltag i PostgreSQL ved hjælp af pgAdmin
Nedenfor er trinnene til at bruge Theta Join PostgreSQL ved hjælp af pgAdmin:
Trin 1) Log ind på din pgAdmin-konto
Åbn pgAdmin og log ind med dine legitimationsoplysninger
Trin 2) Opret demodatabase
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Indtast forespørgslen
Indtast nedenstående forespørgsel i forespørgselseditoren:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Trin 4) Udfør forespørgslen
Klik på knappen Udfør
Det skal returnere følgende:
EQUI Deltag
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Trin 4) Klik på knappen Udfør.
Det skal returnere følgende:
Naturlig Deltag
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
SELECT * FROM Book NATURAL JOIN Price;
Trin 4) Klik på knappen Udfør.
Det skal returnere følgende:
pgAdmin Enkel indre tilslutning
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Trin 4) Klik på knappen Udfør.
Det skal returnere følgende:
pgAdmin Outer Join
Kør derefter de tre outer join-varianter i pgAdmin ved hjælp af nedenstående trin.
Venstre ydre samling
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Trin 4) Klik på knappen Udfør.
Det skal returnere følgende:
Højre ydre samling
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Trin 4) Klik på knappen Udfør.
Det skal returnere følgende:
Fuld ydre tilslutning
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Trin 4) Klik på knappen Udfør.
Det skal returnere følgende:
Download databasen brugt i denne vejledning





























