login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > MySQL


Gegevens:
Geschreven door:
Dolfje
Moeilijkheidsgraad:
Normaal
Hits:
34941
Punten:
Aantal punten:
 (3.94)
Aantal stemmen:
16
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (20)
 



Tutorial:

Joins

1. Algemeen
2. Tables
3. INNER JOIN
4. LEFT JOIN
5. RIGHT JOIN
6. OUTER JOIN
7. Overzicht
8. Nawoord


joins heb je in verschillende vormen (INNER JOIN, LEFT JOIN, RIGHT JOIN,...). we zullen ze 1 voor 1 aflopen.

1. Algemeen
Eerst iets algemeen, met Joins ga je 2 tables met elkaar verbinden, dus is het normaal dat je de ze een 'roepnaam' gaat geven. Dit is te vergelijken met een where-query met 2 tables:

SELECT * FROM table1, table2 WHERE table1.row = table2.row


en als je de naam van de kolom wilt veranderen:

SELECT table1.row as id FROM table1, table2 WHERE table1.row = table2.row;


 top
2. Tables
dit zijn de tables waar we mee gaan werken:
klanten
id naam
1Jean
2Maarten
3Josefien
4Elke
5Joël
6Dolfje
aankopen
idproductklantID
1appelen1
2peren5
3appelen3
4bloemen2
5peren2
6appelen7

 top
3. INNER JOIN
Deze functie doet eigenlijk hetzelfde als WHERE met 2 tabellen.
een voorbeeldje:
query:SELECT * FROM klanten INNER JOIN aankopen ON (klanten.id = aankopen.klantID )
Deze query geeft alles van beide tables waar er een match is in de andere table, zoals Elke zal je niet aantreffen omdat zij geen product heeft gekocht.
idnaamproductklantID
1Jeanappelen1
5Joelperen5
3Josefienappelen3
2Maartenbloemen2
2Maartenperen2

 top
4. LEFT JOIN
Deze functie doet bijna hetzelfde als INNERJOIN alleen heeft het een groot verschil
een voorbeeldje:
query:SELECT * FROM klanten LEFT JOIN aankopen ON (klanten.id = aankopen.klantID )
Deze query neemt de eerste tabel en voegt de waardes van de tweede er gewoon aan toe en als iemand 2 waarden heeft (van de eerste table) word die nog eens getoond:
idnaamproductklantID
1Jeanappelen1
2Maartenperen2
2Maartenbloemen2
3Josefienappelen3
4Elke4
5Joëlperen5
6Dolfje6

 top
5. RIGHT JOIN
Deze functie doet juist het omgekeerde van LEFTJOIN
een voorbeeldje:
query:SELECT * FROM klanten RIGHT JOIN aankopen ON (klanten.id = aankopen.klantID )
Deze query geeft neemt de tweede tabel en voegt de waardes van de eerste er gewoon aan toe en als iemand 2 waarden heeft (van de tweede table) word die nog eens getoond:
idnaamproductklantID
1Jeanappelen1
5Joëlperen5
3Josefienappelen3
2Maartenbloemen2
2Maartenperen2
7appelen7

 top
6. OUTER JOIN
Deze functie doet hetzelfde als LEFT JOIN en RIGHT JOIN tegelijk
een voorbeeldje:
query:SELECT * FROM klanten OUTER JOIN aankopen ON (klanten.id = aankopen.klantID )
Deze query geeft neemt de eerste tabel en voegt de waardes van de eerste er gewoon aan toe en zet er ook alle waarde van de tweede query bij waarvan er niets in de eerste tabel zit.
idnaamproductklantID
1Jeanappelen1
2Maartenbloemen2
2Maartenperen2
3Josefienappelen3
4Elke4
5Joëlperen5
6Dolfje6
7appelen7

 top
7. Overzicht
Dus nu alles samengevat:
bij een INNER JOIN:
hij neemt alles waarvan er iets in de eerste tabel zit en in de tweede.
bij een LEFT JOIN:
hij neemt alles van de eerste tabel en zet er de waarden van de tweede tabel bij. (dus alles waarvan er niets in de 2de tabel zit is dan leeg)
bij een RIGHT JOIN:
hij neemt alles van de 2de table en zet er de waarden van de 1ste tabel bij. (dus alles waarvan er niets in de 1de tabel zit is dan leeg)
bij een OUTER JOIN:
hij neemt alles waarvan er iets in de eerste tabel zit of in de tweede. (dus alles waarvan er niets in de 1de tabel zit is dan leeg en dus alles waarvan er niets in de 2de tabel zit is dan leeg)

 top
8. Nawoord
Ik hoop dat jullie wat geleerd hebben van deze tutorial, als er foutjes in staan gelieve me te verwittigen.

« Vorige tutorial : Joins Volgende tutorial : Fulltext Search »

© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.018s