Join - relaties
ik heb 2 simpele tabellen:
leden:
support:
Code (php)
1
2
3
4
2
3
4
+---+--------+------------------------+
|id | id_lid | bericht |
|1 | 1 | hallo, ik heb een fout |
+---+--------+------------------------+
|id | id_lid | bericht |
|1 | 1 | hallo, ik heb een fout |
+---+--------+------------------------+
Nu wil ik alle support berichten ophalen + de naam. Maar dat lukt niet.
Code (php)
1
2
3
4
2
3
4
SELECT s.id, s.id_lid, s.bericht
FROM support AS s
INNER JOIN leden AS l
ON l.naam = s.id_lid
FROM support AS s
INNER JOIN leden AS l
ON l.naam = s.id_lid
Nu geeft mijn mysql_num_rows 0, maar er zijn wel degelijk support berichten.
Wat die ik fout?
Ik gebruik INNODB als type en ik heb een foreign key: id_lid -> leden.id
Gewijzigd op 07/03/2011 14:21:41 door Jasper DS
ON l.id = s.id_lid
Je koppelt het veld l.naam aan s.id_lid, dat klopt niet. Je moet wel beide id's aan elkaar koppelen. Verder zul je in de SELECT clause ook het veld l.naam moeten selecteren als je de naam uit wilt lezen...
Maar hij werkt alleszins :)
De FK gebruik je om de constraint af te dwingen. Dus zodat je geen records in je support tabel hebt staan die verwijzen naar niet bestaande records in de leden tabel...
ah oke, het is dus goed.
Gewijzigd op 07/03/2011 15:03:37 door John D
Maar met betrekking tot de gehele situatie is het type engine wel relevant. InnoDB is namelijk de enige engine die het gebruik van FK's ondersteunt...
Dan kun je het meeste via een GUI doen.
Ik zal effe een database schema voor je opzetten...
Het is al in orde, toch bedankt.
Prima