Join - relaties

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Next-level Java Developer functie, veel verantwoor

Bedrijfsomschrijving Mobile Development en Ops Engineering gaan hand in hand bij deze organisatie dat een hoog verantwoordelijkheidsgevoel draagt. Als organisatie ontwikkelt zij dan ook veelal mobiele applicaties ter inspiratie en ondersteuning van belangrijke sectoren in Nederland. Met het technische team van gepassioneerde developers en engineers voeren ze dagelijks veelal diverse, inspirerende en complexe werkzaamheden uit waarbij zij als Java ontwikkelaar interessante software realiseert. Door gebruik van innovatieve software en de nieuwste platformen binnen de sector is deze klant dan ook zeker als vooruitstrevend te betitelen waar zijn enorm veel waarde aan hecht. Functieomschrijving Je werkt aan innovatieve producten binnen een

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

05/12/2020 15:50:55
 
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.