14. november 2005 - 21:13Der er
3 kommentarer og 1 løsning
select distinct
Hej,
Kan jeg på en eller anden måde få flere søjler ud af min tabel end de, SELECT DISTINCT giver. Eksempel:
SELECT DISTINCT PERSONER.personid, DISCIPLINER.disciplinid FROM PERSONER, KONKURRENCER, RESULTATER, DISCIPLINER WHERE ... ORDER BY DISCIPLINER.disciplinid, RESULTATER.SCORE;
giver som udgangspunkt det, jeg ønsker. Men til hver kombination af personid, disciplinid er knyttet en eller flere scores, hvoraf jeg kun ønsker det bedste (derfor sorteringen) - og ønkser dette med fra udtrækket. Jeg kan ikke komme i tanke om nogen subquery, som kan klare dette.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
SELECT PERSONER.personid, DISCIPLINER.disciplinid, MIN(RESULTATER.score) FROM PERSONER, KONKURRENCER, DISCIPLINER, RESULTATER WHERE ... GROUP BY PERSONER.personid, DIsCIPLINER.disciplinid;
i min subquery. Men i den ydre query vil jeg så kun matche de første to kolonner i subquerien. Altså noget a la ... WHERE (PERSONER.personid, DISCIPLINER.disciplinid) IN
...eller nogen, der kan fortælle mig, hvorfor følgende query ikke returnerer noget
SELECT PERSONER.navn, DISCIPLINER.disciplinnavn, RESULTATER.displayscore FROM PERSONER, KONKURRENCER, DISCIPLINER, RESULTATER WHERE [...JOIN CLAUSES...] AND [...OTHER CLAUSES...] AND RESULTATER.score IN (SELECT MIN(RESULTATER.score) FROM PERSONER, KONKURRENCER, DISCIPLINER, RESULTATER WHERE [...JOIN CLAUSES...] AND [...OTHER CLAUSES...] GROUP BY PERSONER.personid, DISCIPLINER.disciplinid);
Den indre query giver det ønskede, i dette tilfælde 17 floats, der (naturligvis) alle findes i RESULTATER. [...JOIN CLAUSES...] og [...OTHER CLAUSES...] er de samme i begge queries.
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.