Avatar billede martinhk Nybegynder
18. oktober 2002 - 09:56 Der er 7 kommentarer og
1 løsning

Sortering ved udtræk fra tabel

Jeg har to tabeller som blandt andet indeholder følgende elementer:

company: id, name, ...
custumor: id, name, ...
request: id, companyId, customerId, ...

company.id har en "en-til-mange" relation til request.companyId.
customer.id har en "en-til-en" relation til request.customerId.

Jeg laver følgende udtræk fra "request":
"SELECT request.companyId, request.customerId FROM request ORDER BY request.companyId".
Af dette får jeg en liste som består af samtlige ordrer afgivet igennem systemet sorteret efter company.id.

Mit problem er at jeg gerne vil have mulighed for at sortere anderledes end efter company.id, fx. alfabetisk efter company.name. Jeg har prøvet noget i retning af:
"SELECT request.companyId, request.customerId, company.name FROM request, company ORDER BY request.companyId, company.name", men det blev noget rod.

Håber der er nogen der har et løsningsforslag.
Avatar billede disky Nybegynder
18. oktober 2002 - 10:00 #1
så brug:
SELECT request.companyId, request.customerId FROM request ORDER BY company.name
Avatar billede martinhk Nybegynder
18. oktober 2002 - 10:09 #2
Jeg kan ikke sortere efter company.name uden også at tilføje den til FROM og så er det ligesom det går galt. Der kommer mange flere resultater end der er i request tabellen.
Dette går galt:
"SELECT request.companyId, request.customerId FROM request, company ORDER BY company.name"
Avatar billede proaccess Nybegynder
18. oktober 2002 - 10:34 #3
SELECT co.name, re.*
FROM company co INNER JOIN request re ON co.id=re.companyID
ORDER BY co.name;
Avatar billede nemeier Nybegynder
18. oktober 2002 - 10:36 #4
SELECT request.companyId, request.customerId FROM request,customer
  ORDER BY company.name
  WHERE customer.id = request.customerId

det kan godt være at ORDER BY skal kommer efter WHERE ;) gider ikke checke
Avatar billede martinhk Nybegynder
18. oktober 2002 - 10:45 #5
proaccess:

Thanks, det var lige hvad jeg ledte efter... Havde ikke lige hørt om den der INNER JOIN før...
Avatar billede martinhk Nybegynder
18. oktober 2002 - 10:48 #6
Nemeier:

Dit foreslag virker faktisk også, hvis man som du selv foreslår bytter lidt runft på ORDER BY og WHERE.
Avatar billede proaccess Nybegynder
18. oktober 2002 - 11:06 #7
INNER JOIN ...  ON ... = ...

Er egentlig det samme som

FROM ..., ...
WHERE ... = ...

Det "sjove" kommer først ved LEFT JOIN, hvor du kan vælge rækker fra den ene tabel, som IKKE har nogen referencer i den anden...
Avatar billede nemeier Nybegynder
18. oktober 2002 - 12:14 #8
Proaccess --> Eller vores berømte dobbelt nagation som C.J.Date har lært os, så skal der leges ;)
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