PostgreSQL Sammenføyningstyper: Indre, ytre, venstre, høyre
⚡ Smart oppsummering
PostgreSQL Sammenføyninger henter og kombinerer rader fra to eller flere tabeller ved hjelp av en delt nøkkel, og inkluderer indre sammenføyninger som theta, EQUI og naturlig, pluss ytre sammenføyninger som dekker venstre, høyre og fullstendige resultater.

Hva er slutter seg til PostgreSQL?
PostgreSQL tiltrer brukes til å hente data fra mer enn én tabell. Med Joins er det mulig for oss å kombinere SELECT- og JOIN-setningene til én setning. En JOIN-betingelse legges til setningen, og alle rader som oppfyller betingelsene returneres. Verdiene fra forskjellige tabeller kombineres basert på felles kolonner. Felleskolonnen er stort sett en primærnøkkel i den første tabellen og en fremmednøkkel i den andre tabellen.
PostgreSQL Bli med typer
Det finnes to typer Joins in PostgreSQL:
- Indre sammenføyninger
- Ytre skjøter
PostgreSQL Indre sammenføyning
Det er 3 typer Inner Joins in PostgreSQL:
- Theta bli med
- Naturlig sammenføyning
- EQUI bli med
Theta Bli med
En theta-sammenføyning lar en slå sammen to tabeller basert på tilstanden som er representert av theta. Theta joins kan fungere med alle sammenligningsoperatører. I de fleste tilfeller blir theta-sammenføyningen referert til som indre sammenføyning.
Theta join er den mest grunnleggende typen JOIN. Den vil returnere alle rader fra tabellene der JOIN-betingelsen er oppfylt.
Syntaks:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Tenk på følgende tabeller i demodatabasen:
Bok:
Pris:
Vi ønsker å se navnet på hver bok og den tilsvarende prisen. Vi kan kjø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 rader oppfylte sammenføyningsbetingelsen.
EQUI Bli med
EQUI-koblingen gir oss en måte å slå sammen to tabeller basert på primærnøkkel/fremmednøkkelforhold. For eksempel:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Dette vil returnere følgende:
Poster har blitt returnert fra begge tabellene basert på de vanlige kolonnene, det vil si id-kolonnen.
Naturlig Bli med
Denne typen sammenføyning gir oss en annen måte å skrive en EQUI sammenføyning på. Vi kan forbedre vårt forrige eksempel ved å legge til NATURAL-søkeordet som vist nedenfor:
SELECT * FROM Book NATURAL JOIN Price;
Dette vil returnere følgende:
Bare én id-kolonne har blitt returnert. NATURAL JOIN kunne merke seg at id-kolonnen er vanlig i de to tabellene. Bare én ble returnert.
PostgreSQL Ytre sammenføyning
Det er 3 typer ytre sammenføyninger PostgreSQL:
- Venstre ytre skjøt
- Høyre ytre skjøt
- Full ytre sammenføyning
PostgreSQL Venstre ytre skjøt
LEFT OUTER JOIN vil returnere alle rader i tabellen på venstre side og bare radene i høyre sidetabell der sammenføyningsbetingelsen er oppfylt.
Syntaks:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Vi må se navnet på hver bok og den tilsvarende prisen. Vi kan kjø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 radene i boktabellen er returnert. Bare 3 rader fra pristabellen oppfylte sammenføyningsbetingelsen. Derfor ble de returnert. Den siste boken har ingen tilsvarende prisverdi.
PostgreSQL Høyre ytre skjøt
RIGHT YTRE JOIN returnerer alle rader i tabellen på høyre side og rader i tabellen på venstre side der sammenføyningsbetingelsen er oppfylt.
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 radene i Price-tabellen er returnert. Bare radene i Book-tabellen som oppfylte sammenføyningsbetingelsen ble returnert. Den tredje raden har ingen verdi for name siden ingen treff ble funnet.
Full Ytre Bli med PostgreSQL
Denne typen JOIN vil returnere alle rader i tabellen på venstre side og alle rader i tabellen på høyre side med null der sammenføyningsbetingelsen ikke er oppfylt.
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 rader fra alle tabeller er returnert, med nullverdier der ingen treff ble funnet.
Bruker pgAdmin
Oppgavene ovenfor kan utføres i pgAdmin som følger. De følgende avsnittene går gjennom hver sammenføyningstype trinn for trinn.
pgAdmin Inner Join
Trinnene nedenfor viser hvordan du kjører hver variant av indre sammenkobling i pgAdmin.
Slik bruker du Theta Bli med PostgreSQL ved å bruke pgAdmin
Nedenfor finner du trinnene for å bruke Theta Join PostgreSQL bruker pgAdmin:
Trinn 1) Logg på pgAdmin-kontoen din
Åpne pgAdmin og logg på med legitimasjonen din
Trinn 2) Opprett demodatabase
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket
Skriv inn søket nedenfor i spørringsredigeringsprogrammet:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Trinn 4) Utfør spørringen
Klikk på Utfør-knappen
Den skal returnere følgende:
EQUI Bli med
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
Naturlig Bli med
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT * FROM Book NATURAL JOIN Price;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
pgAdmin Enkel indre deltakelse
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
pgAdmin Outer Join
Kjør deretter de tre variantene av den ytre sammenkoblingen i pgAdmin ved å følge trinnene nedenfor.
Venstre ytre skjøt
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
Høyre ytre skjøt
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
Full ytre sammenføyning
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
Last ned databasen som brukes i denne opplæringen





























