INNER JOIN en OUTER JOIN zijn beiden SQL opdrachten die gebruikt worden om gegevens uit twee of meer tabellen te combineren op basis van een gerelateerde kolom tussen deze.
Het belangrijkste verschil tussen INNER JOIN en OUTER JOIN ligt in het resultaat na het uitvoeren van de opdracht.
- INNER JOIN: Het resultaat van een INNER JOIN commando bestaat alleen uit de rijen waar een match in beide tabellen voorkomt. Dat wil zeggen, als er een rij in de eerste tabel is die overeenkomt met een rij in de tweede tabel, zal het deze rijen retourneren. Als er geen matchende rijen in de tabellen zijn, zal het geen resultaat opleveren.
- OUTER JOIN: Het resultaat van een OUTER JOIN commando bestaat uit alle rijen van beide tabellen, zelfs als er geen match aanwezig is. Dat wil zeggen, het zal alle rijen uit zowel de eerste als de tweede tabel retourneren, en als er geen matchende velden zijn, zal het NULL waarden in alle kolommen van de tabel zonder match retourneren. OUTER JOIN kan verder worden onderverdeeld in LEFT OUTER JOIN, RIGHT OUTER JOIN en FULL OUTER JOIN, afhankelijk van welke tabellen je alle records wilt toont.
Kortom, INNER JOIN retourneert alleen de rijen waar de tabellen elkaar kruisen, terwijl OUTER JOIN alle rijen retourneert van alle tabellen die deelnemen aan de JOIN, en vult de waarden in met NULL als er geen match is.