select master,count(*)
from t
where reply = 1
and master in (select id from t
where reply = 0
and master = <forumid>)
group by master
Om jag nu har förstått din datamodell riktigt.
Databaser & SQLur Databashanterare & SQL
6 svar · 230 visningar · startad av SoMeOnE
Jag har gjort ett litet forum och försöker göra så den skriver ut hur många svar som har skrivits i det. Problemet är att den bara ska räkna dom som är replies och är i rätt forum. så här ser databasen ut:
-ID
-Master *på svar är "Master" trådens ID och på tråden är "Master" satt till forumets ID
-Reply *1 betyder att det är en ny tråd och 0 att det är ett svar
Det jag skulle vilja göra är att den tar alla poster som har rätt forum som master och har Reply 0 (alltså dom som inte är svar) ta allas deras IDn och sen göra en ny sökning och välja alla som har master satt till dom IDna och Reply 1 (alltså är svar). Jag skulle kunna göra allt med lopar med vill fråga först ifall det är ngn som vet hur man kan göra på ngn enklare sätt med sql.
select master,count(*)
from t
where reply = 1
and master in (select id from t
where reply = 0
and master = <forumid>)
group by master
Om jag nu har förstått din datamodell riktigt.
Tack Lars, jag visst inte att man kunde göra så i sql, ngt nytt lär man sig varje dag :).
Jag vet inte riktigt vad som är fel:
Du har något fel i din syntax nära 'select ID from x2dforumtopics where Reply = 0 and m' på rad 4
rad 4 är alltså "and master in (select id from t" vad är felet?
Ifall någon skulle kunna ge en länk till en sida där mna förklarar lite närmare vad "in" gör så skulle det vara snällt, alla sidor jag hittar förklarar bara grund sakerna.
Får man gissa på att du använder MySQL? MySQL stödjer inte subqueries förrän version 4.1. Om du kör en lägre version av MySQL, har du möjlighet att uppgradera?
(Ett bra tips är att alltid ange vilken dbms man använder, eftersom svaren/lösningarna kan skilja en hel del.)
Ok, jag trodde jag hade den nyaste versionen av mysql. Desutom testade jag att ladda upp det på b-one, jag tycker att dom borde ha den nyaste versioen men jag får samma fel där.
SoMeOnE skrev:
Ok, jag trodde jag hade den nyaste versionen av mysql. Desutom testade jag att ladda upp det på b-one, jag tycker att dom borde ha den nyaste versioen men jag får samma fel där.
Inte troligt att webbhotellet uppgraderar förrän mysql-versionen är stabil. :)