Avatar billede krak Nybegynder
25. februar 2004 - 11:38 Der er 10 kommentarer og
1 løsning

hjælp til indlejrede forespørgsler

Jeg har tre tabeller:
Produkt (produktID...)
Ordrelinie(ordrelinieID, ordreID, produktID..)
Ordre (ordreID, kundeID...)

Jeg har forsøgt at lave et par indlejrede forespørgsler så jeg kan se produkt-egenskaberne for de produkter der har været tilknyttet en ordre til kundeID X

Men jeg synes ikke den er så glad for ()'er som her:
select * from produkt where produktID=(select produktID from ordrelinie where ordreID=(select ordreID from ordre where kundeID=1))

Måske ville det være mere optimalt med at bruge join, men jeg er ikke så stærk i dem...

Hvordan skal sql-sætningen se ud?
Avatar billede jakobclausen Nybegynder
25. februar 2004 - 11:46 #1
En god side om join finder du her:
http://activedeveloper.dk/aspdigital/2003062001.asp
Avatar billede jakobclausen Nybegynder
25. februar 2004 - 11:49 #2
Måske

SELECT Produkt.produktID, Ordrelinie.ordrelinieID, Ordrelinie.OrdreID, Ordre.kundeID FROM tabel WHERE kundeID=1 AND Produkt.produktID=ordrelini.produktID AND Ordrelini.ordreID=ordre.ordreID
Avatar billede jakobclausen Nybegynder
25. februar 2004 - 11:50 #3
Rettelse:
SELECT Produkt.produktID, Ordrelinie.ordrelinieID, Ordrelinie.OrdreID, Ordre.kundeID FROM tabel WHERE kundeID=1 AND Produkt.produktID=ordrelinie.produktID AND Ordrelinie.ordreID=ordre.ordreID
Avatar billede krak Nybegynder
25. februar 2004 - 12:10 #4
FROM tabel ???
Jeg kan ikke helt se hvilken tabel det burde være i stedet for...
Avatar billede jakobclausen Nybegynder
25. februar 2004 - 12:21 #5
Istedet for tabel skal du jo bruge navnet på din tabel
Avatar billede jakobclausen Nybegynder
25. februar 2004 - 12:43 #6
Altså produkt
Avatar billede krak Nybegynder
25. februar 2004 - 12:54 #7
vel nærmere alle de tabeller der skal benyttes...

Dette virker i hvert fald:

SELECT produkt.produktID, ordrelinie.ordreID, produkt.navn FROM ordrelinie,ordre,produkt WHERE kundeID=1 AND produkt.produktID=ordrelinie.produktID AND ordrelinie.ordreID=ordre.ordreID

Jeg siger tak, og kvitterer med point.
Avatar billede jakobclausen Nybegynder
25. februar 2004 - 12:59 #8
Ja selvfølgelig, jeg takker også :-)
Avatar billede krak Nybegynder
25. februar 2004 - 13:38 #9
Men hvorfor kan man ikke lave en indlejret forespørgsel som
... WHERE produktID=(SELECT produktID from...

Hvad er syntaksen der?
Avatar billede jakobclausen Nybegynder
25. februar 2004 - 15:24 #10
Det kan man også godt, men vidst ikke i mysql
Avatar billede krak Nybegynder
26. februar 2004 - 22:39 #11
Jo, nu fandt jeg ud af det: Indlejrede forespørgsler kræver blot MySQL 4.1.1
- Jeg brugte 4.0.17
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