sql >> Databasteknik >  >> RDS >> Database

Skillnaden mellan Inner join och Outer join i SQL

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!

  1. Varför använder Oracle DBMS_STATS.GATHER_TABLE_STATS?

  2. Ge behörigheter till en MySQL-användare på Linux via kommandoraden

  3. Om du använder indexerade vyer och MERGE, läs detta!

  4. Databasmodell för en trafikskolas bokningssystem. Del 1