I SQL, a Ansluta sig används 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 koppling hittar och returnerar matchande data från tabeller, medan en yttre anslutning hittar och returnerar matchande data och några olika data från tabeller.
Ett inre deltagande fokuserar på gemensamheten mellan två tabeller. När man använder en inre anslutning måste det finnas åtminstone några matchande data mellan två (eller flera) tabeller som jämförs. Ett inre sammanhang söker tabeller för att matcha eller överlappa data. När den har hittats, kombinerar det inre föreningen och returnerar informationen till ett nytt bord.
Låt oss överväga ett gemensamt scenario med två tabeller: produktpriser och kvantiteter. Den gemensamma informationen i de två tabellerna är produktnamn, så det är den logiska kolumnen att gå med i tabellerna på. Det finns några produkter som är vanliga i de två tabellerna; andra är unika för en av tabellerna och har ingen match i den andra tabellen.
En inre föreningen på Produkter returnerar information om endast de produkter som är vanliga i båda tabellerna.
En yttre delning returnerar en uppsättning poster (eller rader) som inkluderar vad en inre del skulle returnera men innehåller också andra rader för vilka ingen motsvarande match hittas i den andra tabellen.
Det finns tre typer av yttre föreningar:
Var och en av dessa yttre förbindelser avser den del av data som jämförs, kombineras och returneras. Ibland produceras nollor i denna process eftersom vissa data delas medan andra data inte är.
En vänster yttre anslutning returnerar all data i Tabell 1 och all delad data (så den inre delen av Venn-diagrammet), men endast motsvarande data från Tabell 2, vilket är rätt anslutning.
I vår exempeldatabas finns det två produkter - apelsiner och tomater - på "vänster" (priserna tabell) som inte har en motsvarande post på "right" (kvantitetstabellen). I ett vänster sammanhang ingår dessa rader i resultatuppsättningen med en NULL i kolumn Quantity. De andra raderna i resultatet är samma som innerförbandet.
En höger yttre förbindelse returnerar Tabell 2: s data och all delad data, men endast motsvarande data från Tabell 1, som är den vänstra anslutningen.
På samma sätt som exemplet i vänster anslutning, innehåller utmatningen från en högra yttre anslutning alla rader av innerförbindelsen och två rader - broccoli och squash - från "höger" (mängder bord) som inte har matchande poster till vänster.
En full yttre anslutning, eller fullständig anslutning, vilket är inte som stöds av det populära MySQL-databashanteringssystemet, kombinerar och returnerar Allt data från två eller flera tabeller, oavsett om det finns delad information. Tänk på en fullständig anslutning som bara duplicera all angiven information, men i ett bord, snarare än flera tabeller. Om matchande data saknas kommer nulls att produceras.
Det här är bara grunderna, men många saker kan göras med att gå med. Det finns även anteckningar som kan utesluta andra medlemmar!
Denna video förklarar skillnaden mellan olika typer av samlingar. Det är cued upp till början vid den punkt där diskussionen om samverkan börjar.