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
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