Avatar billede encorez Nybegynder
20. juli 2002 - 21:52 Der er 5 kommentarer og
2 løsninger

En select i en select

Jeg har et kompliceret problem i en mysql query.

Jeg har nogle personer i en database. Her registrere jeg personernes køn under feltet "koen" i tabellen Person.
Jeg skal så lave et udtræk, hvor alle personer jeg får i queryen er lig med den persons køn som er logget ind. Dvs. jeg fået noget lignende dette.

...where Person.koen = "den persons køn som er inden på siden lige nu"

Den persons koen kunne jeg selvfølgelig finde ved at lave en anden query lige inde denne, men jeg vil jo gerne være smart og lave det hele i én. For mig lyder det som om jeg skal lave en select sætning/where inde i min overordnede select sætning. Noget i denne retning, men det virker bare ikke.

select * from Person
where Person.koen=("select koen from Person where Person.personnr=63")

Her er et eksempel hvor personen der er logget ind har personnr 63 i databasen. Den inderste select sætning virker og returnere det den skal. Men hele min select virker ikke.
Kan det overhovedet lade sih gøre i MySql?????
Avatar billede thomasledet Nybegynder
20. juli 2002 - 22:06 #1
var det ikke smartere at lave noget i retning af

select * from person where koen = 'køn' and personnr = '63';

??

eller har jeg misforstået dit spørgsmål?
Avatar billede tuctoh Nybegynder
20. juli 2002 - 22:16 #2
select * from Person as p1 where p1.koen=("select p2.koen from Person as p2 where p2.personnr=63")
Avatar billede a1a1 Novice
20. juli 2002 - 22:22 #3
nej, du kan ikke lave subselects i mySQL men det kan muligvis gøres på en anden måde...

;)
Avatar billede a1a1 Novice
20. juli 2002 - 22:27 #4
SELECT p2.ID, p2.Navn FROM Person p1
INNER JOIN Person p2 ON p1.koen=p2.koen
WHERE p1.ID = 63

muligvis?
Avatar billede encorez Nybegynder
20. juli 2002 - 23:03 #5
Jeg er ikke sikker på hvor jeg skal sætte det kode ind i skriver.
Her er min nuværende query:

select Person.personnr from Person, Ansoegning
where Person.koen='0'
and Person.personnr=Ansoegning.personnr
and Person.profil=1
order by Ansoegning.samletPoint DESC

Problemet er koen. Der skal ikke stå '0'. Der skal istedet angives koen for den person der er logget ind. Med ..where Person.personnr=63. I må gerne omskrive min som I begge mener den skal skrives for at den virker
Avatar billede encorez Nybegynder
20. juli 2002 - 23:37 #6
Tak for hjælpen begge to. Jeg fik det til at virke med inspiration fra jer begge
Avatar billede a1a1 Novice
20. juli 2002 - 23:43 #7
det var da godt :)

tak for points :)
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