PDA

Bekijk Volledige Versie : [mysql php] koppelingstabel gebruiken



Frank Mutsaers
29/08/05, 14:05
Hallo,

Ik heb een database met verschillende tabellen
Een van die tabellen is een koppelingstabel.
Het gaat om de koppeling tussen leden en boeken

Kort komt het hier op neer:

tabel: lid
id en naam (en nog meer velden)
tabel boek
id en titel (en nog meer velden)
tabel lid_boek
id lidid boekid

nu wil ik van een lid alle boeken krijgen, hoe pak ik dit aan?
(en van een boek alle leden, maar ik verwacht dat de query er ongeveer
hetzelfde uit gaat zien)
Niet de boekid's die kan ik uit de koppelingstabel halen, maar de titels en
andere gegevens.

Nu doe ik het omslagtig en haal eerst alle boekid's uit de koppelingstabel
en dan doe ik voor elke boekid een query. Ik hoop dat het ook met een query
kan.

mijn provider heeft mysql 4.0.15 draaien.

Alvast dank

Frank

Rene Pijlman
29/08/05, 14:25
Frank Mutsaers:
>Ik heb een database met verschillende tabellen
>Een van die tabellen is een koppelingstabel.
>Het gaat om de koppeling tussen leden en boeken
[...]
>nu wil ik van een lid alle boeken krijgen, hoe
>pak ik dit aan?

Met een join.
http://www.google.nl/search?q=mysql%20joining%20tables

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

miseryman
29/08/05, 14:25
Frank Mutsaers wrote:

> tabel: lid
> id en naam (en nog meer velden)
> tabel boek
> id en titel (en nog meer velden)
> tabel lid_boek
> id lidid boekid

Waarom een aparte ID in deze tabel? Je kan ook nog eens nadenken of er
geen betere naam te bedenken valt voor de relatie tussen lid en boek; in
de context van een bibliotheek zou dat b.v. 'Ontlening' kunnen zijn.

> nu wil ik van een lid alle boeken krijgen, hoe pak ik dit aan?

Voor lid met ID 15 iets als:

SELECT titel
FROM lid_boek, boek
WHERE lidid = 15
AND boek.id = boekid;

--
Raf

Frank Mutsaers
29/08/05, 15:35
miseryman wrote:

> Frank Mutsaers wrote:
>
>> tabel: lid
>> id en naam (en nog meer velden)
>> tabel boek
>> id en titel (en nog meer velden)
>> tabel lid_boek
>> id lidid boekid
>
> Waarom een aparte ID in deze tabel? Je kan ook nog eens nadenken of er
> geen betere naam te bedenken valt voor de relatie tussen lid en boek; in
> de context van een bibliotheek zou dat b.v. 'Ontlening' kunnen zijn.

De DB gaat eigenlijk ergens anders over, maar ik wilde een simpel voorbeeld
geven. Het ging mij om de koppeling.

>> nu wil ik van een lid alle boeken krijgen, hoe pak ik dit aan?
>
> Voor lid met ID 15 iets als:
>
> SELECT titel
> FROM lid_boek, boek
> WHERE lidid = 15
> AND boek.id = boekid;
>

Auw, dit is wel erg simpel, ik vrees dat ik op deze maandag veel te moeilijk
aan het denken was.
Dank voor je query.

Frank Mutsaers

Frank Mutsaers
29/08/05, 16:05
Ik heb vandaag het licht gezien, dankjewel miseryman.

Niet alleen kun je 2 tabbelen in de FROM stoppen maar je kunt er ook 3
instoppen.
De tutorials/docs/voorbeelden die ik tot nu las gingen altijd over 2
tabellen, en ik bedacht me hoe kun je dan ook een koppelingstabel
gebruiken. Maar het is dus veel simpelere dan ik dacht
Straks ook kijken of ik 4 tabellen aan elkaar kan knopen.

Wordt het toch een mooie dag

dank

Frank Mutsaers
29/08/05, 16:15
Rene Pijlman wrote:

> Frank Mutsaers:
>>Ik heb een database met verschillende tabellen
>>Een van die tabellen is een koppelingstabel.
>>Het gaat om de koppeling tussen leden en boeken
> [...]
>>nu wil ik van een lid alle boeken krijgen, hoe
>>pak ik dit aan?
>
> Met een join.
> http://www.google.nl/search?q=mysql%20joining%20tables
>

Dacht eerst, "ja googlen heb ik al lang gedaan", maar toch even jouw link
aangeklikt.
Ik weet niet hoe het komt, misschien door het werkwoord joining, maar mijn
zoektochten leverde minder goede resultaten op. Meteen de eerste die Google
geeft (devshed) gaat er al vanuit dat je meer dan 2 tables wilt joinen.
Dank voor jouw google-query

Frank Mutsaers