Beste mensen ik heb in de volgende stuk code een fout namelijk dat de subquery meerdere results heeft. Hoe kan ik dit oplossen?

De opbouw is als volgt:

tblpersonen -- rekeningpersoon -- tblrekeningen

tabel rekeningpersoon is de kopperltabel.

code:

[code]
$sql_gegevens_tblrekeningen = "SELECT * FROM tblrekeningen WHERE RekeningID =
(SELECT Tblrekeningen_RekeningID FROM rekeningpersoon WHERE TblPersonen_PersoonID = ".$sessie_id.")";
$result_gegevens_tblrekeningen = mysql_query($sql_gegevens_tblrekeningen);
while($gegevens_tblrekeningen = mysql_fetch_array($result_gegevens_tblrekeningen))
{
echo " $gegevens_tblrekeningen['RekeningID']
$gegevens_tblrekeningen['Rekeningnummer']
";
}
je voert 2 querys uit in 1 query!? :s
En waarom zit je dan met een subquery te kloten en ook nog eens op een foutieve manier?

als je op deze manier een subquery gebruikt dan gebruik je IN en niet =

maar je doet er verstandiger aan de tabellen te joinen:
SELECT tr.*
FROM tblrekeningen tr
INNER JOIN
rekeningpersoon rp
ON tr.RekeningID = rp.Tblrekeningen_RekeningID
WHERE rp.TblPersonen_PersoonID = $sessie_id


en dan ook die * te vervangen. benoem altijd de velden welke je wilt ophalen.
Zou je dat niet proberen oplossen met JOIN ?

Iets als
SELECT ... FROM tblrekeningen
INNER JOIN rekeningpersoon ON rekeningpersoon.TblPersonen_PersoonID = tblrekeningen.RekeningID


... zelf invullen; met * krijg je hier problemen.

Edit: iemand was me voor :)
Bedankt voor de tips jongens!

INNER JOIN, hoe kon ik dat nou zijn vergeten:S

Ik kwam er gewoon even niet uit op de zondag morgen, bedankt! ik ga er weer verder mee:D

thanks, het werkt

Reageren