SQLTutorial.nl
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.FROM tabelnaam1
INNER JOIN tabelnaam2 ON tabelnaam1.kolomnaam = tabelnaam2.kolomnaam
- Indien je uit een speciale kolomnaam wilt selecteren kun je ook daar tabel.kolomaan gebruiken.
Voorbeeld
De "Persoon" tabel zie er als volgd uit:
Er is tussen deze tabellen een relatie tussen
Persoon.Id > Order.PersoonNr.
| 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 |
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
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 |
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
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 |