Inner join

Inner join geeft een rij terug als er tenminste ��n overeenkomst is in de beide kolommen. De syntax van de inner join ziet er als volgt uit:

SELECT kolomnaam1, kolomnaam2
FROM tabelnaam1
INNER JOIN tabelnaam2 ON tabelnaam1.kolomnaam = tabelnaam2.kolomnaam
- INNER JOIN is het zelfde als JOIN, INNER mag in veel gevallen weggelaten worden.
- Indien je uit een speciale kolomnaam wilt selecteren kun je ook daar tabel.kolomaan gebruiken.

Voorbeeld

De "Persoon" tabel zie er als volgd uit:
id Voornaam Achternaam Woonplaats Geslacht
1 Henk Janssen Amsterdam M
2 Petra de klomp Nijmegen V
3 Sjoerd Vermeulen Amsterdam M
4 Mieke Sterk Amsterdam V
Er is tussen deze tabellen een relatie tussen
Persoon.Id > Order.PersoonNr.
De tabel "Orders":
OrderNr PersoonNr Bestel datum
1 1 10-1-2009
2 4 11-2-2009
4 1 8-8-2009
5 3 23-8-2009
6 4 10-9-2009

In onderstaande query zal alle informatie worden opgevraagd over de persoon en orders tabel waarbij gebruik zal worden gemaakt van inner join.
SELECT *
FROM Persoon
INNER JOIN Orders
ON Persoon.id = Orders.PersoonNr
id Voornaam Achternaam Woonplaats Geslacht OrderNr PersoonNr Bestel datum
1 Henk Janssen Amsterdam M 1 1 10-1-2009
1 Henk Janssen Amsterdam M 4 1 8-8-2009
3 Sjoerd Vermeulen Amsterdam M 5 3 23-8-2009
4 Mieke Sterk Amsterdam V 2 4 11-2-2009
4 Mieke Sterk Amsterdam V 6 4 10-9-2009
In het resultaat hierboven valt op dat Peta de klop niet voorkomt in het overzicht. Dit komt doordat haar id nummer (2) niet voorkomt in de order tabel. Er is dus geen verband tussen deze twee gegevens en wordt daardoor dus niet getoond.

Als we enkel de voor- en achternamen willen weten en de ordernummers ziet de query er als volgd uit:
SELECT p.voornaam, p.achternaam. O.OrderNr
FROM Persoon AS p
INNER JOIN Orders AS O
ON P.id = O.PersoonNr
Voornaam Achternaam OrderNr
Henk Janssen 1
Henk Janssen 4
Sjoerd Vermeulen 5
Mieke Sterk 2
Mieke Sterk 6