12. august 2001 - 20:52Der er
6 kommentarer og 1 løsning
Problemer med SQL query
SQL = \"SELECT * FROM reklame_banner WHERE (visninger=(SELECT MIN(visninger) FROM reklame_banner WHERE sidenr=\" & nummer & \"))\"
Ovenstående skulle vælge den posten i tabellen hvor værdien i feltet \"visinger\" er mindst, og hvor feltet \"sidenr\" indeholder værdien nummer.
Men det virker ikke helt. Queryet vælger kun ud fra hvilken post som har mindst værdi i feltet \"visninger\", og tager ikke hensyn til om indholdet i feltet \"sidenr\" er = nummer
Jeg tror jeg forstår hvad der sker. I din subselect finder du det mindste antal visninger som en reklame til den givne side har. Derefter finder du en tilfældig) reklame med netop det antal sider. Det vil sige at hvis reklameA for side 2 har 10 visninger og er den som er vist mindst, så kan du resikere at vise reklameB for side 24 hvis den også har netop 10 visninger.
En - efter min mening - smartere måde at gøre det på er
SELECT * FROM reklame_banner WHERE sidenr=\" & nummer & \" LIMIT 1;
SELECT * FROM reklame_banner WHERE visninger = ( SELECT MIN(visninger) FROM reklame_banner WHERE sidenr = \" & nummer & \" ) AND sidenr = \" & nummer & \"
Beklager jeg havde overset den inderste \"WHERE sidenr=nummer\". Da burde dit forslag jo virke.
Tak for hjælpen.
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.