Jeg har 2 tabeller, Works og Votes. Works indeholder en liste over værker (bøger, film,etc) og Votes indeholder en liste over stemmer på disse værker. Hver gang en bruger stemmer på et værk laver jeg en row i tabellen Votes, som indeholder værkets ID.
Mit problem er at jeg gerne vil lave en top-10 baseret på hvor mange stemmer et enkelt værk har fået.
Det kan jeg bare ikke fordi jeg først skal tælle stemmerne sammen i Votes (f.eks. SELECT COUNT(vote_id) FROM Votes WHERE vote_id=1) for hvert enkelt entry jeg har i Works...
Jeg ved det kan lade sig gøre BÅDE at tælle stemmer sammen og loope Works-tabellen igennem on-the-fly, men hvordan ??
Det er super, virker bare. Men jeg vil gerne trække nogle felter ud fra Works samtidig. Hver entry i Votes har et titel_id som matcher et ID på en entry i Works. Fra Works vil jeg gerne hente følgende felter: titel, kunstner, kategori. Hvis du fikser det, så er pointene dine :-)
SELECT TOP 12 votes.titel_id,COUNT(*) AS antal,max(works.titel) FROM votes,works WHERE votes.titel_id=works.ID GROUP BY votes.titel_id ORDER BY antal DESC
hvad med at tilføje works.titel i group by: SELECT TOP 12 votes.titel_id,COUNT(*) AS antal,works.titel FROM votes,works WHERE votes.titel_id=works.ID GROUP BY votes.titel_id, works.titel ORDER BY antal DESC
SELECT TOP 12 votes.titel_id,COUNT(*) AS antal,max(works.titel) AS titel, max(works.kunstner) AS kunstner, max(kategori) AS kategori FROM votes,works WHERE votes.titel_id=works.ID AND works.kategori=" & kategori &" GROUP BY votes.titel_id ORDER BY antal DESC
Jeg blev nødt til at ændre mine text-felter til varchar i databasen.
Jeg synes dog at at det er en lidt underligt at man skal bruge MAX før det virker og at den kun kan selecte felter af en bestemt type... meget upraktisk :-/
varchar contra text er noget med effektivitet. Max(..) er nødvendigt for at give mening. I dit eksempel kan de ikke vide at alle works.title er ens, og hvilken skulle den så vælge.
Jeg samler slet ikke på point, tak.
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.