PostgreSQL Kopplingstyper: Inre, Yttre, Vänster, Höger
⚡ Smart sammanfattning
PostgreSQL Joins hämtar och kombinerar rader från två eller flera tabeller med hjälp av en delad nyckel och inkluderar inre kopplingar som theta, EQUI och natural, plus yttre kopplingar som täcker vänster, höger och fullständiga resultat.

Vad är går med i PostgreSQL?
PostgreSQL Fogar används för att hämta data från mer än en tabell. Med Joins är det möjligt för oss att kombinera SELECT- och JOIN-satserna till en enda sats. Ett JOIN-villkor läggs till satsen, och alla rader som uppfyller villkoren returneras. Värdena från olika tabeller kombineras baserat på gemensamma kolumner. Den gemensamma kolumnen är oftast en primärnyckel i den första tabellen och en främmande nyckel i den andra tabellen.
PostgreSQL Gå med Typer
Det finns två typer av Joins in PostgreSQL:
- Inre sammanfogningar
- Yttre sammanfogningar
PostgreSQL Inre koppling
Det finns 3 typer av Inner Joins in PostgreSQL:
- Theta går med
- Naturlig anslutning
- EQUI gå med
Theta Gå med
En theta-join tillåter en att sammanfoga två tabeller baserat på villkoret som representeras av theta. Theta joins kan fungera med alla jämförelseoperatorer. I de flesta fall kallas theta-kopplingen som inre koppling.
Theta join är den mest grundläggande typen av JOIN. Det kommer att returnera alla rader från tabellerna där JOIN-villkoret är uppfyllt.
Syntax:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Tänk på följande tabeller i demodatabasen:
Bok:
Pris:
Vi vill se namnet på varje bok och motsvarande pris. Vi kan köra följande kommando:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Detta kommer att returnera följande:
Endast 3 rader uppfyllde sammanfogningsvillkoret.
EQUI Gå med
EQUI-anslutningen ger oss ett sätt att sammanfoga två tabeller baserat på relationen primärnyckel/främmande nyckel. Till exempel:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Detta kommer att returnera följande:
Poster har returnerats från båda tabellerna baserat på de vanliga kolumnerna, det vill säga id-kolumnen.
Naturlig gå med
Denna typ av join ger oss ett annat sätt att skriva en EQUI join. Vi kan förbättra vårt tidigare exempel genom att lägga till nyckelordet NATURAL som visas nedan:
SELECT * FROM Book NATURAL JOIN Price;
Detta kommer att returnera följande:
Endast en id-kolumn har returnerats. NATURAL JOIN kunde notera att id-kolumnen är vanlig i de två tabellerna. Endast en lämnades tillbaka.
PostgreSQL Yttre anslutning
Det finns 3 typer av Outer Joins in PostgreSQL:
- Vänster yttre anslutning
- Höger yttre anslutning
- Full yttre anslutning
PostgreSQL Vänster yttre anslutning
LEFT OUTER JOIN returnerar alla rader i tabellen på vänster sida och endast raderna i den högra sidotabellen där sammanfogningsvillkoret har uppfyllts.
Syntax:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Vi måste se namnet på varje bok och motsvarande pris. Vi kan köra följande kommando:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Detta returnerar följande:
Alla de fyra raderna i boktabellen har returnerats. Endast 4 rader från pristabellen uppfyllde sammanfogningsvillkoret. Därför återlämnades de. Den sista boken har inget motsvarande prisvärde.
PostgreSQL Höger yttre anslutning
RIGHT OUTER JOIN returnerar alla rader i tabellen på höger sida och rader i tabellen på vänster sida där sammanfogningsvillkoret har uppfyllts.
Syntax:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Till exempel:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Detta returnerar följande:
Alla rader i pristabellen har returnerats. Endast de rader i boktabellen som uppfyllde kopplingsvillkoret returnerades. Den tredje raden har inget värde för namn eftersom ingen matchning hittades.
Full Outer Anslut PostgreSQL
Denna typ av JOIN kommer att returnera alla rader i tabellen på vänster sida och alla rader i tabellen på höger sida med nollor där joinvillkoret inte är uppfyllt.
Syntax:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Till exempel:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Detta returnerar följande:
Alla rader från alla tabeller har returnerats, med nollor där ingen matchning hittades.
Använder pgAdmin
Ovanstående uppgifter kan utföras i pgAdmin enligt följande. Följande avsnitt går igenom varje kopplingstyp steg för steg.
pgAdmin Inner Join
Stegen nedan visar hur man kör varje inner join-variant i pgAdmin.
Så här använder du Theta Gå med PostgreSQL med pgAdmin
Nedan följer stegen för att använda Theta Join PostgreSQL använder pgAdmin:
Steg 1) Logga in på ditt pgAdmin-konto
Öppna pgAdmin och logga in med dina referenser
Steg 2) Skapa demodatabas
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan
Skriv in frågan nedan i frågeredigeraren:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Steg 4) Utför frågan
Klicka på knappen Kör
Det bör returnera följande:
EQUI Gå med
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Steg 4) Klicka på knappen Kör.
Det bör returnera följande:
Naturlig gå med
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
SELECT * FROM Book NATURAL JOIN Price;
Steg 4) Klicka på knappen Kör.
Det bör returnera följande:
pgAdmin Enkel Inre Join
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Steg 4) Klicka på knappen Kör.
Det bör returnera följande:
pgAdmin Outer Join
Kör sedan de tre varianterna av outer join i pgAdmin med hjälp av stegen nedan.
Vänster yttre anslutning
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Steg 4) Klicka på knappen Kör.
Det bör returnera följande:
Höger yttre anslutning
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Steg 4) Klicka på knappen Kör.
Det bör returnera följande:
Full yttre anslutning
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Steg 4) Klicka på knappen Kör.
Det bör returnera följande:
Ladda ner den databas som används i denna handledning





























