Avatar billede 4u2x Nybegynder
25. oktober 2003 - 00:45 Der er 7 kommentarer og
1 løsning

må kun udskrives 1 gang

her er min sql kode:

$result = mysql_query("SELECT distinct(ordrenr),id,status,spec FROM bestilling WHERE done = '2' AND tid > '$oldtid' ORDER BY ordrenr DESC LIMIT $aa,$vis");

ifølge koden skulle den ikke udskrive et punkt mere med det samme "ordrenr", men det gør den alligevel, hvorfor det?? jeg har nemlig lavet distinct på den...
Avatar billede detox Nybegynder
25. oktober 2003 - 01:06 #1
Det kan du ikke gøre på den måde. DISTINCT virker nemlig på alle de valgte felter og kun hvor alle data er ens vil den udelukke nogen. Brug istedet GROUP BY.
Avatar billede detox Nybegynder
25. oktober 2003 - 01:07 #2
$result = mysql_query("SELECT ordrenr,id,status,spec FROM bestilling WHERE done = '2' AND tid > '$oldtid' GROUP BY ordrenr ORDER BY ordrenr DESC LIMIT $aa,$vis");
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 09:14 #3
Den du giver, detox, er lidt sjov. Når du bruger

  group by ordrenr

får du selvfølgelig kun samme ordrenr een gang. Det er jo godt nok.
Så siger du at der yderligere skal komme id, status og spec. Men er der
flere rækker med samme ordrenr, vil der typiske være flere forskellige
id-er, status-er og spec-er, og hvilken af disse skal så vælges.

Det er faktisk muligt i MySql, og den vil vælge een "tilfældigt" - måske
bare den første. Men i andre SQL-er vil det være en fejl, da det jo
egentlig ikke giver mening at vælge "tilfældige" værdier i en SQL-select
sætning.

Så vi er vel egentlig tilbage til hvad spørgeren egentlig vil. Hvis 4u2x
kan komme med eksempler på de data der står i tabellen, og det resultat
han ønsker at få ud, så kan vi sikkert strikke en løsning sammen.
Avatar billede detox Nybegynder
25. oktober 2003 - 10:23 #4
erikjacobsen -> Jeg kan godt se problematikken. I det her tilfælde lader det til at 'ordrenr' er det primære element i forespørgslen, siden det kun ønskes udskrevet en gang. 'id' behøver jo ikke nødvendigvis at være forskellige, hvis de fx refererer til en 'kundetabel'. Så GROUP BY kan måske/måske ikke bruges.
Men det forbliver et gæt (udfra nogle løse antagelser).
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 10:48 #5
Ja, vi gætter. Hvis der er flere ordrenr, med samme id, i samme tabel,
så har vi redundans, og burde ordne det med flere tabeller.
Avatar billede 4u2x Nybegynder
25. oktober 2003 - 11:44 #6
yiir detox, du er gud :)  lig et svar og pointene er dine!
Avatar billede detox Nybegynder
25. oktober 2003 - 12:02 #7
Nah, ikke Gud. Godt du kunne bruge det. c",)
Avatar billede 4u2x Nybegynder
25. oktober 2003 - 12:05 #8
:)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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