Inner join och outer join är två användbara sätt att sammanfoga databastabeller och fråga data från flera tabeller. I den här artikeln kommer vi att titta på skillnaden mellan inre koppling och yttre koppling i SQL.
Inre Join
Inner join returnerar rader från två eller flera tabeller där minst en kolumn har samma värde i alla tabeller. Om det inte finns några gemensamma värden returneras inga rader.
Här är syntaxen för inre sammanfogning:
select * from table1 INNER JOIN table2 on table1.column_name = table2.column_name; OR select * from table1 JOIN table2 on table1.column_name = table2.column_name;
Oter Join
Outer join returnerar rader från två eller flera tabeller där minst en kolumn har ett gemensamt värde, samt rader där sammanfogningsvillkoret misslyckas. Det finns 3 typer av yttre kopplingar:
vänster yttre sammanfogning
I det här fallet behålls alla rader i den vänstra tabellen i resultatet, om dess kopplingsvillkor matchar andra tabeller, returneras deras kolumnvärden, annars returneras null-värden för dessa kolumner. Här är syntaxen för vänster yttre sammanfogning.
select * from table1 LEFT OUTER JOIN table2 on table1.column_name = table2.column_name;
Right Outer Join
I det här fallet behålls alla rader i den högra tabellen i resultatet, om dess kopplingsvillkor matchar andra tabeller, returneras deras kolumnvärden, annars returneras null-värden för dessa kolumner.
Här är syntaxen för höger yttre sammanfogning
select * from table1 RIGHT OUTER JOIN table2 on table1.column_name = table2.column_name;
Fullständig yttre sammanfogning
I det här fallet returneras alla rader i båda tabellerna. Om kopplingsvillkoret är uppfyllt, fylls kolumner med värden för båda tabellerna. Om kopplingsvillkoret misslyckas, fylls värdena i en av tabellerna i kolumner och resten fylls i som nollor.
Skillnaden mellan Inner join och Outer join i SQL
Här är de viktigaste skillnaderna mellan inre sammanfogning vs yttre sammanfogning.
Inre Join
- Den returnerar endast rader med vanliga kolumnvärden.
- Du kan använda INNER JOIN- eller JOIN-satsen. Båda har samma effekt
- Den returnerar null när det inte finns några matchande kolumnvärden mellan två (eller flera) tabeller
- Inner Join är snabbare än Outer Join
- Det är användbart att göra uppslagningar över flera tabeller
- I matematiska termer returnerar den skärningspunkten mellan två uppsättningar (tabeller)
Oter Join
- Den returnerar värden från en eller flera tabeller även om det inte finns några matchande kolumnvärden
- För rader utan matchande attribut returnerar den null för återstående kolumner
- Full Outer Join och Full Join har samma effekt.
- Det är långsammare än inre sammanfogning
- Det används för att få fullständig information i två eller flera tabeller
- Fullständig yttre anslutning stöds inte i MySQL. Den är tillgänglig i PostgreSQL, SQL Server, Oracle och andra populära databaser.
Behöver du ett rapporteringsverktyg för MySQL? Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!