PHP Koppel tabel
Hallo,
Ik had een vraag hoe ik uit meerdere tabellen kan selecteren en die uitlezen.
Voorbeeld:
Ik heb nu in me database 3 tabellen:
1. gebruikers
- idgebruiker
- de rest van de gegevens
2. naamcon
- idnaamcon
- idgebruiker
- idnaam
3. naam
- idnaam
- namen
Nu wil ik dat als je een gebruiker selecteert dat die dan kijkt in de "naamcon" tabel. Vervolgens in die tabel naar het "idgebruiker" die gekoppeld is aan "idnaam" en dan de bijbehorende naam er bij pakt en laat zien.
Hoop dat jullie mijn uitleg kunnen volgen.
Groet,
Kees
Ik had een vraag hoe ik uit meerdere tabellen kan selecteren en die uitlezen.
Voorbeeld:
Ik heb nu in me database 3 tabellen:
1. gebruikers
- idgebruiker
- de rest van de gegevens
2. naamcon
- idnaamcon
- idgebruiker
- idnaam
3. naam
- idnaam
- namen
Nu wil ik dat als je een gebruiker selecteert dat die dan kijkt in de "naamcon" tabel. Vervolgens in die tabel naar het "idgebruiker" die gekoppeld is aan "idnaam" en dan de bijbehorende naam er bij pakt en laat zien.
Hoop dat jullie mijn uitleg kunnen volgen.
Groet,
Kees
Dit kan je doen met mysql join indien het hier gaat om een 1:1 relatie: http://dev.mysql.com/doc/refman/5.0/en/join.html
Als het een 1:* relatie is zal ik adviseren om eerst door alle resultaten van 1 te loopen en binnen de loop een query doen om alle resultaten van 2 op te halen (where idgebruiker = $loopResult['idgebruiker'])
Als het een 1:* relatie is zal ik adviseren om eerst door alle resultaten van 1 te loopen en binnen de loop een query doen om alle resultaten van 2 op te halen (where idgebruiker = $loopResult['idgebruiker'])
Hoe bedoel je dit precies? van welke moet ik dan een loop maken?
Jaron T op 07/12/2011 10:26:51:
Dit kan je doen met mysql join indien het hier gaat om een 1:1 relatie: http://dev.mysql.com/doc/refman/5.0/en/join.html
Als het een 1:* relatie is zal ik adviseren om eerst door alle resultaten van 1 te loopen en binnen de loop een query doen om alle resultaten van 2 op te halen (where idgebruiker = $loopResult['idgebruiker'])
Als het een 1:* relatie is zal ik adviseren om eerst door alle resultaten van 1 te loopen en binnen de loop een query doen om alle resultaten van 2 op te halen (where idgebruiker = $loopResult['idgebruiker'])
Niet echt slim: als 1 1000 resultaten heeft wordt er 1000x een query uitgevoerd!
Beter om een subquery te maken in de from clause, bv:
@Ger, een subquery is nog steeds een losse query ;) Dus dat maakt voor de database niet uit. Is wel sneller dan het los vanuit php aanroepen.
Maar bij een 1:* relatie kan het soms makkelijker zijn om je join zo te maken dat hij alle * records in laad met de gegevens van je 1 record bij in de row.
Maar bij een 1:* relatie kan het soms makkelijker zijn om je join zo te maken dat hij alle * records in laad met de gegevens van je 1 record bij in de row.




