Avatar billede hansa Nybegynder
09. juli 2004 - 12:31 Der er 7 kommentarer og
1 løsning

Nested select

Hej,

Jeg har et problem med et nested select statement:

SELECT id FROM foto WHERE albumid=(SELECT albumid FROM foto WHERE id=9) ORDER BY id;

Jeg får bare fejlen "You have an error in your SQL syntax".

De 2 select statements virker hver for sig:
- SELECT id FROM foto WHERE albumid=1 ORDER BY id;
- SELECT albumid FROM foto WHERE id=9;

Nogen der kan hjælpe?
Avatar billede michael_stim Ekspert
09. juli 2004 - 12:36 #1
Så vidt jeg ved kan man ikke have nested select's i MySQL.
Avatar billede Slettet bruger
09. juli 2004 - 12:39 #2
To forslag:
1) SELECT id FROM foto WHERE albumid in (SELECT albumid FROM foto WHERE id=9) ORDER BY id

2) SELECT id FROM foto WHERE albumid=(SELECT max(albumid) FROM foto WHERE id=9) ORDER BY id;
Avatar billede michael_stim Ekspert
09. juli 2004 - 12:39 #3
SELECT id FROM foto WHERE albumid=1 AND id=9 ORDER BY id;
Avatar billede arne_v Ekspert
09. juli 2004 - 12:40 #4
MySQL understøtter først subqueries fra 4.1
Avatar billede arne_v Ekspert
09. juli 2004 - 12:42 #5
SELECT foto1.id
FROM foto foto1,foto foto2
WHERE foto1.albumid=foto2.albumid AND foto2.id=9

må være løsningen.
Avatar billede hansa Nybegynder
09. juli 2004 - 12:50 #6
Tak for hjælpen allesammen!
arne_v > dit svar var helt perfekt :-)
Smider du ikke et svar, så du kan få dine point...
Avatar billede arne_v Ekspert
09. juli 2004 - 12:56 #7
svar
Avatar billede arne_v Ekspert
09. juli 2004 - 12:56 #8
konstruktionen kaldes iøvrigt for en "self join"
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