webForumDet fria alternativet

Hämta ut värden ur en tabell

Databaser & SQLur Databashanterare & SQL

6 svar · 230 visningar · startad av SoMeOnE

Medlem sedan nov. 200254 inlägg
Frågan#1

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.

En länk ifall ni vill kolla hur det ser ut nu

Medlem sedan dec. 200012 464 inlägg
#2
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.

Medlem sedan nov. 200254 inlägg
#3

Tack Lars, jag visst inte att man kunde göra så i sql, ngt nytt lär man sig varje dag :).

Medlem sedan nov. 200254 inlägg
#4

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.

Medlem sedan juni 200032 967 inlägg
#5

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.)

Medlem sedan nov. 200254 inlägg
#6

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.

Medlem sedan mars 20032 667 inlägg
#7

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. :)

136 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)