PHP Koppel tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees -

Kees -

07/12/2011 10:08:59
Quote Anchor link
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
 
PHP hulp

PHP hulp

05/11/2024 12:42:45
 
Jaron T

Jaron T

07/12/2011 10:26:51
Quote Anchor link
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'])
 
Kees -

Kees -

07/12/2011 10:56:25
Quote Anchor link
Hoe bedoel je dit precies? van welke moet ik dan een loop maken?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/12/2011 12:12:14
Quote Anchor link
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'])

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT fname, address FROM
(SELECT e.firstname fname, e.department_id dep, c.address address
FROM company c
JOIN employee e USING company_id
WHERE c.company_id = 98765) t1
WHERE dep=1234
 
TJVB tvb

TJVB tvb

07/12/2011 14:07:54
Quote Anchor link
@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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.