Avatar billede nadster Nybegynder
27. december 2003 - 13:59 Der er 8 kommentarer og
1 løsning

problem med SELECT

Hej

jeg har følgende SQL-sætning:
"SELECT * FROM table1, table2 WHERE table1.tempID = table2.tempID ORDER BY Dato DESC"

den kommer frem med gengangere, hvilket jeg ikke ønsker. Altså at den laver en liste med over alle forekomster i de 2 tabeller. Det jeg er interesseret i, er at få en liste med kun to informationer fra table1. Navn og Dato, f.eks.

Som jeg husker det, så er der en forholdsvis nem måde at gøre det på, jeg kan bare ikke lige huske hvad retning jeg skal hen af.

Håber det giver lidt mening
Avatar billede Slettet bruger
27. december 2003 - 14:03 #1
SELECT table1.* FROM table1, table2 WHERE table1.tempID = table2.tempID ORDER BY Dato DESC
Avatar billede nadster Nybegynder
27. december 2003 - 14:09 #2
hmm, ser ikke ud til at virke. Får det samme resultat som før, hvor "Navn" flere gange er med i listen.

Jeg glemte også at sige, at jeg skal bruge et ID fra table2, så den skal også med over på en eller anden måde.
Avatar billede Slettet bruger
27. december 2003 - 15:22 #3
Det her burde altså virke: table1.* skal skrives som 1 ord.
SELECT table1.*,table2.id FROM table1, table2 WHERE table1.tempID = table2.tempID ORDER BY Dato DESC
Avatar billede nadster Nybegynder
27. december 2003 - 15:38 #4
Både og. Den virker (hvilket det også gjorde før), men det er bare ikke det jeg ønsker at få frem. I table2 er der flere forekomster med det samme ID. ID'et som er primær i table1. Altså der kommer f.eks. til at stå følgende:

Navn1 - Dato1
Navn1 - Dato1
Navn2 - Dato2
Navn2 - Dato2
Navn2 - Dato2

Det jeg ønsker at få frem, er en liste som ser således ud:

Navn1 - Dato1
Navn2 - Dato2

Altså lige meget hvor mange forekomster der er, så skal det kun nævnes en gang.

Jeg ved godt jeg ikke lige er den bedste til at forklare tingene, men jeg håber du forstå hvad det er jeg mener...
Avatar billede Slettet bruger
27. december 2003 - 15:43 #5
Så prøv SELECT distinct table1.*,table2.id FROM table1, table2 WHERE table1.tempID = table2.tempID ORDER BY Dato DESC
Avatar billede nadster Nybegynder
27. december 2003 - 15:52 #6
hmm, stadigvæk det samme. Jeg ved ikke om det er fordi jeg ikke kan få formuleret mit spørgsmål ordenligt nok. Men jeg tror jeg stopper for idag, og så kigger på det igen på mandag. Skal nok vende til herinde, når jeg finder frem til noget.

indtil videre, tak for hjælpen..
Avatar billede mugs Novice
27. december 2003 - 23:33 #7
SELECT table1.navn, table1.dato
FROM table1 INNER JOIN table2 ON table1.id = table2.id
GROUP BY table1.navn, table1.dato;
Avatar billede nadster Nybegynder
29. december 2003 - 19:16 #8
mugs>> det var det jeg var ude efter. Der skal bare lige id med, men det har jeg sat ind, sammen med en ORDER BY. Det ser i hvert fald ud til at det virker, så det er helt perfekt.

Den endelige SQL kommer så til at se således ud:

SELECT table1.navn, table1.dato, table1.id
FROM table1 INNER JOIN table2 ON table1.id = table2.id
GROUP BY table1.navn, table1.dato, table1.id
ORDER BY table1.dato DESC;

tak for hjælpen
Avatar billede mugs Novice
29. december 2003 - 23:11 #9
Selv tak
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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