Inre Join vs. Yuter Join

I SQL används en koppling för att jämföra och kombinera - bokstavligen gå med - och returnera specifika rader med data från två eller flera tabeller i en databas. En inre sammanfogning hittar och returnerar matchande data från tabeller, medan en yttre sammanfogning hittar och returnerar matchande data och vissa olika data från tabeller.

Inre koppling

En inre koppling fokuserar på vanligt mellan två bord. När du använder en inre koppling måste det finnas åtminstone vissa matchningsdata mellan två (eller fler) tabeller som jämförs. En inre koppling söker i tabeller efter matchande eller överlappande data. När man hittar den kombineras och returnerar den inre kopplingen informationen till en ny tabell.

Exempel på Inre Join

Låt oss överväga ett vanligt scenario med två tabeller: produktpriser och kvantiteter. Den vanliga informationen i de två tabellerna är produktnamn, så det är den logiska kolumnen att gå med i tabellerna . Det finns vissa produkter som är vanliga i de två tabellerna; andra är unika för ett av tabellerna och har inte en matchning i den andra tabellen.

En inre sammanslutning av produkter ger information om endast de produkter som är vanliga i båda tabellerna.

Yuter Join

En yttre sammanfogning returnerar en uppsättning poster (eller rader) som inkluderar vad en inre sammanfogning skulle returnera men som också innehåller andra rader för vilka ingen motsvarande matchning finns i den andra tabellen.

Det finns tre typer av ytterförband:

  • Vänster yttre anslutning (eller vänster anslutning)
  • Höger yttre anslutning (eller höger anslutning)
  • Full Outer Join (eller Full Join)

Var och en av dessa yttre sammanfogningar hänvisar till den del av data som jämförs, kombineras och returneras. Ibland kommer nollor att produceras i denna process eftersom vissa data delas medan andra data inte är det.

Vänster yttre del

En vänster yttre koppling kommer att returnera all data i tabell 1 och alla delade data (alltså, den inre delen av Venn-diagrammets exempel), men endast motsvarande data från tabell 2, som är den rätta sammanfogningen.

Exempel på vänster gå med

I vår exempeldatabas finns det två produkter - apelsiner och tomater - till 'vänster' ( pristabellen ) som inte har en motsvarande post till 'höger' (tabellen Kvantiteter). I en vänster sammanfogning ingår dessa rader i resultatuppsättningen med en NULL i kolumnen Kvantitet. De andra raderna i resultatet är desamma som den inre sammanfogningen.

Right Yuter Join

En höger yttre koppling returnerar tabell 2s data och alla delade data, men endast motsvarande data från tabell 1, som är vänsterkopplingen.

Exempel på höger anslutning

I likhet med exemplet med vänster sammanfogning inkluderar utgången från en höger yttre koppling alla rader av den inre kopplingen och två rader - broccoli och squash - från 'höger' ( kvantitetstabellen ) som inte har matchande poster till vänster.

Full Yuter Join

En full yttre koppling, eller full koppling, som inte stöds av det populära MySQL-databashanteringssystemet, kombinerar och returnerar all data från två eller flera tabeller, oavsett om det finns delad information. Tänk på en fullständig sammankoppling som helt enkelt duplicera all specificerad information, men i en tabell, snarare än i flera tabeller. Om matchande data saknas kommer nollor att produceras.

Det här är bara grunderna, men många saker kan göras med sammanfogningar. Det finns till och med sammanfogningar som kan utesluta andra anslutningar!

Video Explaining Inner vs Outer Joins

Den här videon förklarar skillnaden mellan olika typer av sammanfogningar. Det är cued upp för att börja vid den punkt där diskussionen om anslutningar börjar.

Relaterade Artiklar