home  :: Home/Artikels/Webdesign enzo/Webdevelopment en scripting/SQL Join syntax - Selecteren uit meerdere tabellen tegelijk

SQL Join syntax - Selecteren uit meerdere tabellen tegelijk


door: Joriso 

Wanneer in een SQL query gegevens uit meerdere tabellen geselecteerd worden, spreekt men van een Join. SQL Joins gebruik je wanneer je data wilt genereren, gebaseerd op relaties tussen gegevens uit twee of meer tabellen. Onderstaande voorbeelden illusteren kort hoe de INNER JOIN, LEFT en RIGHT JOIN in SQL worden toegepast.

SQL JOIN

In onderstaande voorbeelden van SQL JOIN queries wordt uitgegaan van de volgende twee tabellen in een SQL database:

tabel: dier
tabel: voer
 

Om nu te weten te komen welk dier welk voer moet krijgen, kun je de volgende SQL query toepassen:

SELECT dier.dier_naam, voer.voer_naam FROM dier, voer WHERE dier.dier_id = voer.dier_id
resultaat:
SQL JOIN

Of we kunnen data uit de beide tabellen vergelijken met een INNER JOIN opdracht:

Inner Join

Deze SQL query vergelijkt beide tabellen en retourneert alleen waarden wanneer er een match bestaat op de kolom die gespecificeerd wordt in de 'USING' clausule.

SELECT dier.dier_naam, voer.voer_naam FROM dier INNER JOIN voer USING (dier_id)

Dezelfde query kan ook met de 'ON' clausule worden uitgedrukt:

SELECT dier.dier_naam, voer.voer_naam FROM dier INNER JOIN voer ON dier.dier_id = voer.dier_id

resultaat:
SQL JOIN

Left Join / Right Join

De LEFT JOIN retourneert alle waarden van de tabel die aan de linkerkant ervan in de SQL query genoemd wordt. Van de tabel aan de rechterzijde ervan worden alleen de waarden getoond waarvoor ook een match in de linkertabel gevonden wordt.

De RIGHT JOIN doet hetzelfde - en retourneert dus alle waarden van de tabel die aan de rechterkant ervan in de query genoemd worden.

SELECT dier.dier_naam, voer.voer_naam FROM dier LEFT JOIN voer USING (dier_id)

Dezelfde query met de 'ON' clausule :

SELECT dier.dier_naam, voer.voer_naam FROM dier LEFT JOIN voer ON dier.dier_id = voer.dier_id

resultaat:
SQL JOIN

 

RIGHT JOIN:

SELECT dier.dier_naam, voer.voer_naam FROM dier RIGHT JOIN voer USING (dier_id)

resultaat:
SQL JOIN



Commentaar van bezoekers:
van: Arie4321
18:43:13, 4th-Nov-06
Eeeey,

Erg duidenlijke uitleg van het gebruik van JOIN's keurig int Nederlands.

gr,
arie

van: Mark
09:29:17, 28th-Nov-06
Duidelijk. Begrijp het nu wel

van: Desperado
02:43:06, 10th-Jan-07
Eindelijk een simpele uitleg over joins

van: Petter
16:02:40, 1st-Feb-07
Dank je wel, ontzettend duidelijk. Netjes gedaan

van: Jaap
17:44:14, 24th-Apr-07
Bedankt, dit is waar ik naar opzoek ben...

van: Ikke
13:24:43, 14th-Jun-07
Helemaal top deze uitleg. Bedankt!!

van: Mortada
15:55:50, 8th-Jul-07
Ook mijn dank voor de heldere uitleg.

van: Bas
03:06:29, 22nd-Jul-07
Zeer duidelijk, bedankt!

van: Inge
06:33:37, 19th-Aug-07
Bedankt!

van: Saskia
18:05:22, 10th-Sep-07
Fijn als dingen gewoon duidelijk worden uitgelegd met goede voorbeelden!

van: Daan
17:26:35, 25th-Sep-07
Eindelijk niet zo ingewikkeld, hoop dat k 't zo niet vergeet

van: Frank
14:03:45, 4th-Oct-07
zie bovenstaand commentaar.... :)

van: Murry
15:13:11, 23rd-Oct-07
Nice XD

van: noobie
23:42:05, 8th-Nov-07
ja bedankt erg netjes!! ga zo door zou ik zeggen, hoe moeilijk het ook is, zo snap ik het wel!!

van: rob
16:48:08, 13th-Nov-07
Ach ja idd zo zat het. bedankt ! ik had even een opfrisser nodig
Prima uitleg.

van: mongooltje
12:15:39, 3rd-Dec-07
Zelfs een mogool kan dit begrijpen!!!

van: jantje
12:17:35, 3rd-Dec-07
yo, bedankt he

maarre, wat is het verschil tussen JOIN en INNER JOIN? ik zie het verschil niet echt

van: joezoef
12:21:30, 3rd-Dec-07
Je schijft het anders

van: jantje
12:22:37, 3rd-Dec-07
ja je SCHRIJFT het anders

van: koekhapper
12:27:39, 3rd-Dec-07
Leer is normaal koekhappen ipv SQL

van: jantje
12:55:51, 3rd-Dec-07
hoe wilde je koekhappen zonder SQL, koekhapnerd?

van: debonker
12:57:11, 3rd-Dec-07
je kan toch koekhappen met je muis. Heb je dat niet op school geleerd? Als je leet wilt doe je dat met php.

van: jantje
12:58:06, 3rd-Dec-07
hoe wilde je koekhappen met muis zonder SQL, maakt nog steeds geen verschil

van: Muis boy
12:59:07, 3rd-Dec-07
Gewoon een muis kopen natuurlijk en anders heb je nog altijd php.

van: jantje
13:01:20, 3rd-Dec-07
INDERDAAD JAH *grabs a stick and smashes koekhapper's head to smithereens*

van: Jeroen
09:59:14, 21st-Jan-08
He, erg duidelijke uitleg. Netjes gedaan!

van: Legends
14:15:50, 18th-Feb-08
Zeer simpele uitleg voor iets wat moeilijk lijkt! Merci

van: Cilie
17:16:20, 25th-Feb-08
Helder hoor, weer wat geleerd

van: roo
11:51:57, 4th-Mar-08
Enorm duidelijk uitleg, misschien kan er wat over de full outer join bij ? :-)

van: foo-nix
12:54:01, 14th-Apr-08
Jo, vette uitleg! -- zelfs voor wo'ers :P

van: Ikke
14:33:02, 18th-Apr-08
Mischien kan er een uitleg bij over een join tussen meer dan 2 tabellen?

van: danik u
13:28:16, 26th-May-08
heel mooie uitleg

van: BP Webmaster
13:42:07, 29th-May-08
Hier heb ik wat aan wat ik begrijp

van: Kasper
19:02:05, 11th-Jun-08
zeer duidelijk uitgelegd
heeft mn examen sql gered

van: Tom
20:31:45, 23rd-Jun-08
Onduidelijk, in het begin wordt al in 2 verschillende tabellen dezelfde kolomnaam gebruikt, en als er vervolgens mee gewerkt moet wordt er niet vertelt uit welke tabel die kolomnaam komt.

van: Eric
10:21:52, 14th-Aug-08
Heerlijk om even door te lezen, zocht al een paar dagen naar een duidelijke uitleg! bedankt!

van: nico
22:18:44, 20th-Aug-08
zal me zeker helpen met men herexamen

van: Dennis
11:39:21, 22nd-Aug-08
Eindelijk een duidelijke uitleg. Bedankt voor de kunst van het weglaten!

van: Humax
16:59:18, 4th-Sep-08
super uitleg!

van: Jurgen
11:28:44, 17th-Oct-08
Zooooo ontzettend bedankt

van: Eric
15:04:19, 15th-Dec-08
Hoe is het mogelijk... iemand die in een paar woorden uitlegd waar alle SQL instituten van de wereld 600 pagina\'s voor nodig hebben, en je vervolgens nog minder begrijpt dan toen je begon. Eindelijk snap ik \'t. Wilt u zichzelf alstublieft onmiddellijk quadratisch klonen? Mijn dank!

van: marco
02:39:48, 10th-Feb-09
dankjewel zo ontzettend bedankt

van: peter
23:02:42, 2nd-Mar-09
geweldig!

van: Tom
09:12:15, 5th-Apr-09
Bedankt, ik snap het

van: Mike
13:11:41, 30th-Jun-09
Bedankt! Je hebt me goed geholpen!

van: ULT
17:41:04, 2nd-Jul-09
Geweldig! Erg begrijpelijk op deze eenvoudige manier!

van: Hans
12:47:39, 20th-Aug-09
Gigantisch. Eindelijk begrijp ik het (na slechts 2 zinnen van jou versus DUIZEND pagina\'s in SQL-manuals). Gelukkig zijn er nog mensen die het KISS-principe kennen: KEEP IT SIMPLE, STUPID.
Geweldig bedankt.

van: Peter
16:51:38, 20th-Aug-09
Helemaal gewelidg perfecte uitleg

van: Frits
17:19:30, 22nd-Aug-09
Kijk dit noem ik nou vakwerk! Top tutorial.hoe werkt dit met het update statement?

van: Robby
09:21:12, 25th-Aug-09
Mijn prof had een hele les nodig om dit uit te leggen maar na vijf minuutjes dit is het helemaal duidelijk! Bedankt!

van: Jeroen
19:25:02, 17th-Sep-09
Thnx.
Precies wat ik nodig had en makkelijk te vinden via Google.

van: Rob
13:40:57, 24th-Sep-09
Duidelijk!

van: Nils
17:13:09, 6th-Oct-09
Thanx!
Heerlijk eenvoudig, dit bespaart me een paar uur "klooien".
Keep up the good work!
VRAAG: ga je dit nog uitbreiden?

van: JoVB
23:16:55, 7th-Dec-09
mooi gedaan, thx !

van: Zorro1966
20:26:04, 14th-Dec-09
Goede uitleg, maar wat als je een selectie maakt en daarbij gegevens uit andere databases wilt halen. Bijvoorbeeld als ik gegevens uit 2 databases haal en ik wil dat de omschrijving uit een andere database wil halen aan de hand van een getal. Is al eerder gevraagd!

van: Awesome-o
11:22:19, 11th-Jan-10
Je bent een baas! Dank je voor de uitleg!

van: Gretl
17:14:56, 16th-Jan-10
Thanks, altijd weer es goed voor opfrissing!

van: Hemaworst
12:17:20, 18th-Mar-10
Bedankt!

van: wwwPromo
13:53:02, 22nd-Mar-10
maar hoe kan ik dit gebruiken om het volgende resultaat te bekomen.
ik zou gegevens uit twee verschillende tabellen willen halen maar als ik twee maal een query plaats doet enkel de eerste het.
define("SQL", "SELECT `website_url`, `website_title`, `locale`, `added`, `description`, `name` FROM `links` WHERE `cid` = '68' ORDER BY `name` DESC");

tweede is

define("SQL", "SELECT `meta_keyword`, `meta_description`, `description`, `name`, `parent` FROM `category` WHERE `cid` = '68'");

Ik heb het reeds met UNION ALL geprobeerd en met de twee tabel namen na mekaar

define("SQL", "SELECT * FROM `links`, `category` WHERE `cid` = '68' ORDER BY `name` DESC");

dan krijg ik de foutmelding dat de tabelnaam wat een nr is niet geldig is
Hoe kan ik deze twee tabellen ophalen om de resultaten op 1 pagina weer te geven?

van: Stefan
14:52:53, 23rd-Apr-10
Bedankt voor de uitleg ! Heb hier lange tijd moeite mee gehad

Commentaar toevoegen:
Naam:
Link:(niet verplicht)
Commentaar:
<-- code:
  


Gerelateerde Artikels :
webdevelopment:
SQL Join syntax - Selecteren uit meerdere tabellen tegelijk

Snel zoeken:



Springende dolfijn
40 Euro

Toevallig
passerende
cartoon
:



Nieuwste links:


All content copyleft 2008 Joris Osterhaus - www.hardcode.nl