Inner join en outer join zijn twee handige manieren om databasetabellen samen te voegen en gegevens uit meerdere tabellen op te vragen. In dit artikel zullen we kijken naar het verschil tussen inner join en outer join in SQL.
Innerlijke deelname
Inner join retourneert rijen uit twee of meer tabellen waarin ten minste één kolom dezelfde waarde heeft in alle tabellen. Als er geen gemeenschappelijke waarden zijn, worden er geen rijen geretourneerd.
Hier is de syntaxis van inner join:
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;
Outer Join
Outer join retourneert rijen uit twee of meer tabellen waarin ten minste één kolom een gemeenschappelijke waarde heeft, evenals rijen waar de join-voorwaarde niet voldoet. Er zijn 3 soorten outer joins:
Linker buitenste join
In dit geval blijven alle rijen van de linkertabel behouden in het resultaat, in het geval dat de join-voorwaarden overeenkomen met andere tabellen, worden hun kolomwaarden geretourneerd, anders worden null-waarden geretourneerd voor die kolommen. Hier is de syntaxis van left outer join.
select * from table1 LEFT OUTER JOIN table2 on table1.column_name = table2.column_name;
Rechts buitenste join
In dit geval blijven alle rijen van de rechtertabel behouden in het resultaat, in het geval dat de join-voorwaarden overeenkomen met andere tabellen, worden hun kolomwaarden geretourneerd, anders worden null-waarden geretourneerd voor die kolommen.
Hier is de syntaxis van de rechter outer join
select * from table1 RIGHT OUTER JOIN table2 on table1.column_name = table2.column_name;
Volledige externe deelname
In dit geval worden alle rijen van beide tabellen geretourneerd. Als aan de join-voorwaarde is voldaan, worden de kolommen gevuld met de waarden van beide tabellen. Als de join-voorwaarde mislukt, worden de waarden van een van de tabellen in kolommen ingevuld en de rest als nulls.
Verschil tussen Inner join en Outer join in SQL
Dit zijn de belangrijkste verschillen tussen inner join en outer join.
Innerlijke deelname
- Het retourneert alleen rijen met gemeenschappelijke kolomwaarden.
- U kunt de INNER JOIN- of JOIN-clausule gebruiken. Beide hebben hetzelfde effect
- Het geeft null terug als er geen overeenkomende kolomwaarden zijn tussen twee (of meer) tabellen
- Inner Join is sneller dan Outer Join
- Het is handig om zoekacties over meerdere tabellen uit te voeren
- In wiskundige termen geeft het de kruising van twee sets (tabellen) terug
Outer Join
- Het retourneert waarden uit een of meer tabellen, zelfs als er geen overeenkomende kolomwaarden zijn
- Voor rijen zonder overeenkomende kenmerken wordt null geretourneerd voor de resterende kolommen
- Full Outer Join en Full Join hebben hetzelfde effect.
- Het is langzamer dan inner join
- Het wordt gebruikt om volledige informatie in twee of meer tabellen te krijgen
- Volledige outer join wordt niet ondersteund in MySQL. Het is beschikbaar in PostgreSQL, SQL Server, Oracle en andere populaire databases.
Een rapportagetool voor MySQL nodig? Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te monitoren. Probeer het vandaag nog!