Cursussen/Courses Codesnippets     Top 
SQL select - Join


Join
Als je gegevens uit meer dan 1 tabel wil gebruiken in een query moet je een "Join" uitvoeren. De gegevens van de tabellen worden dan samengevoegd en opgenomen in het resultaat. Elke record van de ene tabel wordt samengevoegd met elke record van de andere tabel (of tabellen). Dit kan een groot aantal combinaties opleveren. Men spreekt hier dan van het "Cartesiaans product".
Uiteraard geef je in de query aan welke records er gekoppeld zijn aan mekaar. Dit doe je in de "where" clausule. Je geeft de tabelnaam op gevolgd door een punt en de veldnaam (meestal de "id" of "primary key") van de ene tabel en zet die gelijk aan de tabelnaam, een punt en de veldnaam van het gekoppelde veld (meestal dezelfde "id" maar dan in de andere tabel (="foreign key")).
Een voorbeeld ter verduidelijking:
select wine_name, cost 
from wine, inventory 
where wine.wine_id = inventory.wine_id 
and cost < 5.2
In dit voorbeeld worden de wijnen geselecteerd waarvan de kostprijs kleiner is dan 5.2.
De naam van de wijn wordt opgehaald uit de "wine" tabel. De kostprijs "cost" wordt uit de "inventory" tabel gehaald.
De koppeling tussen beide tabellen is de "wine_id" die in de beide tabellen aanwezig is.
Als je hierbij ook nog wil weten van welke wijngaard die wijnen afkomstig zijn dan voeg je de tabel "winery" toe aan de query en geef je de juiste koppeling aan.
select winery_name, wine_name, cost 
from winery, wine, inventory 
where winery.winery_id = wine.winery_id 
and wine.wine_id = inventory.wine_id 
and cost < 5.2
Het veld "winery_id" komt voor in de tabel "winery" (="primary key") en in de tabel "wine" (="foreign key").
Als dezelfde veldnaam gebruikt wordt in verschillende tabellen en je zou die veldnaam opnemen in de query na het woord "select" dan moet je de tabelnaam en een punt voor de veldnaam zetten zodat het duidelijk is welk gegeven er moet getoond worden.


X

Paragrafen

Join