Ik wil graag de volgende query's samenvoegen en ik krijg het niet voor elkaar.
Query 1:
SELECT reactie.* , users.type
FROM reactie, users
WHERE reactie.id = '" .$_GET["id"]. "'
AND reactie.auteur = users.gebruikersnaam
GROUP BY reactie.nr
ORDER BY reactie.nr DESC";
Query 2:
SELECT auteur, COUNT(*)
FROM reactie
GROUP BY auteur
de auteur van de 2de query hoeft niet weergegeven te worden zolang ik maar alle reacties krijg per auteur.
De eerste query laat alle reacties zijn per topic en het type gebruiker. Hier wil ik dus ook graag het aantal reacties van de gebruiker bij hebben staan!
Edit: Bij een goede server is die snelheid trouwens te verwaarlozen. Het is nog altijd MySQL, en als je niet heb genormaliseerd is het alsnog een rotzooi.
Wat nog steeds geen argument is om databasewerk af te wikkelen in PHP. Een beetje structuur, richtlijnen en principes in programmeerwerk kunnen geen kwaad... Crap in === crap out
nee daar kwam ik ook achter. Maar ik krijg het dus niet voor elkaar...
Ik hoop nu dus eigenlijk dat Jan nog met een oplossing komt? of iemand met een oplossing om het via PHP op te lossen als het niet via SQL gaat...
JWaarom op SQL niveau als je het ook op PHP niveau kan doen?
Omdat dat vele malen efficienter is misschien?
Jentie schreef op 17.10.2008 20:22
van posts alle (posts.*) en van users het type (staat er btw niet in ;) ) en dan nog eens het aantal posts per user.
Dit zijn dus twee verschillende vragen aan de database, waar je dus ook twee verschillende queries voor moet gebruiken. Dit kun je onmogelijk samenvoegen...
Alle postinformatie en usertype uit een bepaald topic:
SELECT
p.*,
u.type
FROM
posts AS p
JOIN
users AS u
ON u.id = p.user_id
WHERE
p.topic_id = 1
Aantal posts per user:
SELECT
u.naam,
COUNT(p.id) AS aantal
FROM
users AS u
JOIN
posts AS p
ON p.user_id = u.id
GROUP BY
u.naam
ps. Lees ook deze handleiding over het juiste gebruik van GROUP BY nog eens na. Het lijkt erop dat je nog niet helemaal door hebt wat deze functionaliteit nu precies doet.
@Blanche ik heb de handleiding gelezen maar zie niet in waar ik GROUP BY niet goed heb gebruikt. Zou je dat kunnen toelichten? Ik ben dr iig wel wat wijzer van geworden.
@iedereen dan komt nu het volgende probleem. Ik heb de volgende php code:
moet dus het aantal posts komen te staan. Hoe krijg ik die er dan in?
p.s. in $rij zitten alle reacties per topic en de user type etc alleen $rij["aantal"] bestaat dus niet aangezien die niet in dezelfde query kan.