Join - relaties

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Jasper DS

Jasper DS

07/03/2011 14:21:16
Quote Anchor link
Hallo,

ik heb 2 simpele tabellen:

leden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
+---+--------+
|id | naam   |  
|1  | jasper |    
+---+--------+


support:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
+---+--------+------------------------+
|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)
PHP script in nieuw venster Selecteer het PHP script
1
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


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

PHP hulp

29/03/2024 00:27:52
 
Kris Peeters

Kris Peeters

07/03/2011 14:25:23
Quote Anchor link
ON l.id = s.id_lid
 
Joren de Wit

Joren de Wit

07/03/2011 14:26:46
Quote Anchor link
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...
 
Jasper DS

Jasper DS

07/03/2011 14:30:28
Quote Anchor link
Perfect, heb ik dat ook juist gedaan met INNODB en dan die foreignkey of was dat verloren werk?

Maar hij werkt alleszins :)
 
Joren de Wit

Joren de Wit

07/03/2011 14:32:23
Quote Anchor link
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...
 
Jasper DS

Jasper DS

07/03/2011 14:35:34
Quote Anchor link
ah oke, het is dus goed.
 
John D

John D

07/03/2011 15:01:47
Quote Anchor link
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
 
Joren de Wit

Joren de Wit

07/03/2011 15:42:44
Quote Anchor link
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...
 
Roger Keulen

Roger Keulen

27/04/2011 20:48:08
Quote Anchor link
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...
 
Jasper DS

Jasper DS

27/04/2011 22:02:47
Quote Anchor link
Het is al in orde, toch bedankt.
 
Roger Keulen

Roger Keulen

27/04/2011 22:25:33
Quote Anchor link
Prima
 



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.