MySQL Join Tutorial
Tabel autos
- ID
- naam
Tabel kleuren
- ID
- kleur
- auto_ID
In de eerste tabel staan alle auto's. In de tweede tabel staan alle mogelijke kleuren voor de auto's. Aangezien een auto meerdere kleuren kan hebben maken we een join om te kijken welke kleuren allemaal beschikbaar zijn voor een auto.
Als eerste gaan we alle auto's ophalen:
MYSQL
- SELECT
- *
- FROM
- autos
Zoals je ziet zet ik de query niet op 1 regel zoals je misschien gewend bent, maar over meerdere regels. Dit is een beetje onzinnig bij simpele queries als hierboven, maar wel heel leesbaar als je grote queries hebt met soms wel meerdere joins. Leer jezelf aan om dit te doen als je uitgebreide queries schrijft, dan houd je het duidelijk voor jezelf (en eventueel andere programmeurs).
MYSQL
- SELECT
- *
- FROM
- autos
- JOIN
- kleuren
- ON
- kleuren.auto_ID=autos.id
Deze query lijkt heel veel op de query hierboven, alleen hebben we een stukje toegevoegd. Als eerste word na de JOIN aangegeven waarmee we willen joinen. In dit geval dus de kleuren tabel. Daarna komt het "moeilijke" stukje. Na de ON geven we aan waarop de twee tabellen moeten joinen. Elke kleur heeft een referentie naar een auto door de "car_ID" waarde. Elke auto heeft een ID, en deze twee waardes zijn dus de link tussen deze twee tabellen. Daarom gaan we daarop joinen.
Geef in uigebreide join queries altijd aan over welke tabel je het hebt, want als je bijvoorbeeld "WHERE id=3" gebruikt, dan weet MySQL natuurlijk niet of je het ID bedoeld van de tabel autos of van de tabel kleuren. Om aan te geven over welke tabel je het hebt kun je de naam van de tabel voor de kolom zetten en samenvoegen met een punt.
Mocht je nu ooit een join moeten maken tussen twee tabellen met een hele lange naam, dan kun je de namen van de tabellen ook afkorten op deze manier:
MYSQL
- SELECT
- *
- FROM
- autos AS a
- JOIN
- kleuren AS k
- ON
- k.auto_ID=a.id
Zoals je ziet geef ik in de bovenstaande query aan dat hij de tabel autos nu "a" moet noemen en de tabel kleuren "k". In deze query scheelt het niet zo veel, maar in grote queries met lange namen kan het veel getyp en vooral duidelijkheid schelen!
Comments
Name: Frits (04 June 2010 - 11:30)
Beste uitleg ooit!!! Graag deze uitleg veelvoudig maken op alle php forums zodat mensen hier makkelijker bekend mee wordenName: Marvin (10 March 2010 - 09:50)
Dankjewel, de meest simpele maar duidelijkste tot nu toe. Altijd handig als je kort even het geheugen moet opfrissen! Bedankt...Name: Eric (27 February 2010 - 18:12)
Heerlijk om wat duidelijkheid in de Google blender te vinden. Bedankt.Name: Timelord (04 October 2009 - 21:06)
Heel leuk, maar hoe krijg je de uitslag nu op het scherm ?Name: hahahaha (11 May 2009 - 21:44)
super lang naar een fatsoenlijke tutorial gezocht en eindelijk gevonden thanks! ;-)Name: Brecht (09 October 2008 - 13:22)
Super uitgelegd!Nu nog ééntje over LEFT JOIN en RIGHT JOIN?
Het verschil tussen INNER JOIN en OUTER JOIN? :)
Name: Roy (02 September 2008 - 15:38)
Jah hier heb ik wat aan aan bedankt wist niet dat dat kon :DName: Peter (15 July 2008 - 15:31)
Ahh eindelijk snap ik het =pName: maartennaaier.nl (07 May 2008 - 09:52)
hoe zit t met de performance en verschillen van JOIN, LEFT JOIN, INNER JOIN, RIGHT JOIN?voor de rest goeie site hoor!
Name: Max (24 April 2008 - 15:35)
Eigenlijk is het zoooo simpel en toch moet je het elke keer weer even opzoeken. thnxName: Joep (22 March 2008 - 17:01)
Dankje!! Dit frist me weer even op, ik kan weer verder!Name: ben (22 February 2008 - 22:34)
Goede uitleg, hier hebben we wat aan, bedankt!Name: Pascal (15 February 2008 - 13:28)
Bedankt man.

