login  Naam:   Wachtwoord: 
Registreer je!
 Forum

MYSQL COUNT toepassen op andere tabel (Opgelost)

Offline gjgino - 17/01/2013 10:05 (laatste wijziging 17/01/2013 10:55)
Avatar van gjginoNieuw lid Ik wil uit een tabel de namen van mijn klanten en uit de andere tabel het aantal afspraken van de klanten.

Tabel `user` - user_id, user_vnaam, user_anaam
Tabel `afspraken` - afspraken_id, afspraken_client die gelijk is aan user_id

Ik krijg het niet voor elkaar , weet iemand de oplossing?
Dit had ik in elkaar gezet:
<?php
$sql="SELECT user_vnaam,COUNT(afspraken_client) AS cnt,(SELECT afspraken_client
FROM afspraken
WHERE afspraken_client = user_id
FROM user
INNER JOIN afspraken
GROUP BY user_anaam";

$result = mysql_query($sql);
while($rows = mysql_fetch_array($result))
{
echo ($rows[user_vnaam] . "&nbsp;" . $rows[user_anaam] . "&nbsp;" . $rows[afspraken_client] . "<br />");
}
mysql_close();
?>

3 antwoorden

Gesponsorde links
Offline marten - 17/01/2013 10:45
Avatar van marten Beheerder Ten eerste ga je kolomnamen hetzelfde maken. Dus de afspraken_client noem je afspraken_user_id

Vervolgens ga je je query onderhanden nemen: Het resultaat van subqueries kan je niet gebruiken in counts, where's etcetera.

Wat je gaat doen is een INNER JOIN op de afspraken tabel in de buitenste query. De count doe je dan in je PHP code.

  1. SELECT user_vnaam FROM user
  2. INNER JOIN afspraken ON afspraken.client_id = user.user_id


Je krijgt dan alle afspraken terug. Count kan je vervolgens in PHP doen 
Offline gjgino - 17/01/2013 11:22
Avatar van gjgino Nieuw lid Bedankt voor je oplossing, alleen krijg ik geen afspraken terug.
Ik krijg nu de lijst met namen maar hoe pas ik dan de COUNT opdracht toe dat ik achter elke naam het aantal afspraken krijg.
Offline marten - 17/01/2013 11:29
Avatar van marten Beheerder Je kan je select uitbreiden met bijvoorbeeld afspraken.*
Bedankt door: gjgino
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.167s