web2 logo

Artikel Links Notities

JOIN

Een Join wordt gebruikt om twee rijen van verschillende tabellen te combineren via een gerelateerde kolom. De verschillende typen JOIN:

(INNER) JOIN
Geeft records die overeenkomende waarden hebben in beide tabellen.
LEFT (OUTER) JOIN
Geeft alle records van de linkertabel en de bijbehorende records van de rechtertabel.
RIGHT (OUTER) JOIN
Geeft alle records van de rechtertabel en de bijbehorende records van de linkertabel.
FULL (OUTER) JOIN
Geeft alle records als er iets gevonden wordt in de linker- of rechtertabel.

sql joins

INNER JOIN

INNER JOIN geeft records die overeenkomende waarden hebben in beide tabellen. INNER JOIN algemene vorm: SELECT kolomnaam(s) FROM tabel1 INNER JOIN tabel2 ON tabel1.kolomnaam = tabel2.kolomnaam; SQL INNER JOIN voorbeeld: /* alleen ordersID's en klantnamen van klanten waarvan de KlantID in beide tabellen voorkomen worden getoond */ SELECT Orders.OrderID, Klanten.Klantnaam FROM Orders INNER JOIN Klanten ON Orders.KlantID = Klanten.KlantID; -- voorbeeld waarbij meerdere tabellen gekoppeld worden SELECT Orders.OrderID, Klanten.Klantnaam, Transporteurs.TransporteurNaam FROM ((Orders INNER JOIN Klanten ON Orders.KlantID = Klanten.KlantID) INNER JOIN Transporteurs ON Orders.TransporteurID = Transporteurs.TransporteurID);

LEFT JOIN

LEFT JOIN geeft alle records van de linkertabel (tabel1) en de bijbehorende records van de rechtertabel (tabel2). Het resultaat is NULL van de rechterkant indien er geen overeenkomst is. LEFT JOIN heet in sommige systemen LEFT OUTER JOIN. LEFT JOIN algemene vorm: SELECT kolomnaam(s) FROM tabel1 LEFT JOIN tabel2 ON tabel1.kolomnaam = tabel2.kolomnaam; SQL LEFT JOIN voorbeeld: SELECT Klanten.Klantnaam, Orders.OrderID FROM Klanten LEFT JOIN Orders ON Klanten.KlantID = Orders.KlantID ORDER BY Klanten.Klantnaam; LEFT JOIN geeft alle records van de linkertabel (Klanten) zelfs als er geen bijbehorende gegevens zijn in de rechtertabel (Orders).

RIGHT JOIN

RIGHT JOIN geeft alle records van de rechtertabel (tabel2) en de bijbehorende records van de linkertabel (tabel1). Het resultaat is NULL van de linkerkant indien er geen overeenkomst is. RIGHT JOIN heet in sommige systemen RIGHT OUTER JOIN. RIGHT JOIN algemene vorm: SELECT kolomnaam(s) FROM tabel1 RIGHT JOIN tabel2 ON tabel1.kolomnaam = tabel2.kolomnaam; RIGHT JOIN voorbeeld: SELECT Orders.OrderID, Medewerkers.Achternaam, Medewerkers.Voornaam FROM Orders RIGHT JOIN Medewerkers ON Orders.MedewerkerID = Medewerkers.MedewerkerID ORDER BY Orders.OrderID; RIGHT JOIN geeft alle records van de rechtertabel (Medewerkers) zelfs als er geen bijbehorende gegevens zijn in de rechtertabel (Orders).

FULL OUTER JOIN

FULL OUTER JOIN geeft alle records als er in de rechter- en/of linkertabel iets gevonden wordt. Dit kan een groot aantal resultaten opleveren. FULL OUTER JOIN is hetzelfde als FULL JOIN. FULL OUTER JOIN algemene vorm: SELECT kolomnaam(s) FROM tabel1 FULL OUTER JOIN tabel2 ON tabel1.kolomnaam = tabel2.kolomnaam WHERE voorwaarde; SQL FULL OUTER JOIN voorbeeld: SELECT Klanten.Klantnaam, Orders.OrderID FROM Klanten FULL OUTER JOIN Orders ON Klanten.KlantID = Orders.KlantID ORDER BY Klanten.Klantnaam;

Self JOIN

Een Self JOIN is een gewone join, maar hier wordt de tabel ge-joined met zichzelf via 2 verschillende aliassen. Self JOIN algemene vorm: SELECT kolomnaam(s) FROM tabel1 T1, tabel1 T2 WHERE voorwaarde; SQL Self JOIN voorbeeld: SELECT A.Klantnaam AS Klantnaam1, B.Klantnaam AS Klantnaam2, A.Stad FROM Klanten A, Klanten B WHERE A.KlantID <> B.KlantID AND A.Stad = B.Stad ORDER BY A.Stad;

naar boven

term zoeken

Notitieruimte