Join - relaties
Hallo,
ik heb 2 simpele tabellen:
leden:
support:
Nu wil ik alle support berichten ophalen + de naam. Maar dat lukt niet.
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
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
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...
Perfect, heb ik dat ook juist gedaan met INNODB en dan die foreignkey of was dat verloren werk?
Maar hij werkt alleszins :)
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...
verder is al dan niet MySQL INNODB met betrekking tot deze query niet relevant: Apparently MyISAM is faster than InnoDB. The only advantage InnoDB has over MyISAM is that it supports row locking, while MyISAM only supports table locking. Therefore, if lots of reads and writes are constantly being done to a very large table, it eliminates the constant database errors that using a MyISAM table would cause from the overload. InnoDB would therefore be a tad more reliable when you don't mind taking a small performance hit in exchange for not suffering from table locking issues.
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...
Jasper je kunt beter effe: MySQL Workbench 5.2 CE downloaden.
Dan kun je het meeste via een GUI doen.
Ik zal effe een database schema voor je opzetten...
Dan kun je het meeste via een GUI doen.
Ik zal effe een database schema voor je opzetten...