Avatar billede centauri Nybegynder
21. august 2007 - 14:36 Der er 6 kommentarer og
1 løsning

Select i Select hvordan

Jeg er kommet lidt ind i et problem med min MySQL database.
Jeg menes engang at have hørt at man kan lave noget med en select i select funktion. Men ved ikke lige helt hvad jeg skal lede efter for at finde noget om det så håber der er nogen her der måske kunne hjælpe.

Det jeg f.eks. har er denne forespørgsel
select * from mb_vare where Vis=1 ORDER BY Dato desc LIMIT 10
Der først finder de 10 nyeste vare i en database
På denne forespørgsels output vil jeg gerne have lavet yderligere en forespørgsel som udtrækker 3 tilfeldige records således at det altid er 3 tilfeldige records fra de 10 nyeste vare.
Hvor jeg ellers bruger
select * from mb_vare where Vis=1 ORDER BY RAND() LIMIT 3

Men kan ikke lige se hvordan jeg kan kombinere de 2 ting, så håber der er nogen der kan hjælpe mig her. Og evt har nogle links til hvor jeg kan læse mere om hvordan man kan kombinere flere forespørgsler.
Avatar billede dkfire Nybegynder
21. august 2007 - 15:12 #1
Måske :

SELECT * from ( select * from mb_vare where Vis=1 ORDER BY Dato desc LIMIT 10 ) ORDER BY RAND() LIMIT 3

Men det kræver du har mysql 5 eller derover
Avatar billede centauri Nybegynder
21. august 2007 - 15:31 #2
Jeg får desværre følgende fejl:
Every derived table must have its own alias

Og køre med MySQL 5.0.37
Avatar billede arne_v Ekspert
21. august 2007 - 16:04 #3
SELECT * from ( select * from mb_vare where Vis=1 ORDER BY Dato desc LIMIT 10 ) x ORDER BY RAND() LIMIT 3
Avatar billede arne_v Ekspert
21. august 2007 - 16:09 #4
forskellen er x'et
Avatar billede dkfire Nybegynder
21. august 2007 - 16:52 #5
Nå ja selvfølgelig, så skal du bare lave et alias som arne skriver
Avatar billede centauri Nybegynder
21. august 2007 - 16:59 #6
>dkfire
Det så ud til at virke nu så jeg siger mange tak for hjælpen så hvis du kunne smide st svar så du kan få pointene
Avatar billede dkfire Nybegynder
21. august 2007 - 19:13 #7
Jamen jeg svare gerne :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester