27. september 2006 - 22:30Der er
6 kommentarer og 1 løsning
Vælge antal poster hvor brugeren er den første til at lave indlæg
Hej,
jeg har et site, hvor brugerne kan skrive om forskellige emner. Hvordan laver jeg en query, så jeg kan finde ud af, hvor mange gange, en bruger har været den første til at skrive om et emne?
I den ene tabel har jeg følgende felter: indlægID, tekst, brugerID, dato og i den anden har jeg emneID, indlægID
Vil det ikke være således, at det første indlæg i et emne har lavere id, end næste indlæg?
I så fald vil du vel kunne gøre noget i retning af:
Select brugerID, count(indlægID) from Tabel1 t1 inner join (Select emneID, min(indlægID) as FirstIndlægID From Tabel2 group by EmneID) t2 on t1.indlægID = t2.FirstIndlægID group by brugerID
lorentsnv, jo det ville virke, men mit db-design gør, at id på indlæg er GUID...øv! Ellers god idé.
ellebaek, Den ene tabel indeholder alle indlæg, mens den anden indeholder alle emner. Emnerne kunne eksempelvis være biler, film, musik etc. Jeg vil så gerne tælle alle de gange en bruger er den første til at skrive et indlæg om biler, film, musik etc.
Jeg savner lidt emre info om din database-opbygning. Men måske noget i den her stil kan gøre det:
SELECT count(*) FROM ( -- Første svar på alle emner SELECT e.indlægID, FirstAnswer.svar_id, FirstAnswer.brugerID FROM emnetabel e JOIN ( -- Første svar på et emne SELECT TOP 1 svar_id, brugerID FROM svartabel s WHERE s.indlægID = e.indlægID ORDER BY dato desc ) as FirstAnswer ) WHERE brugerID = ?
Pierre, tak for inputtet. Fik det løst med inspiration fra dit forslag
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.