25. oktober 2003 - 00:45Der 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...
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
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.
$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");
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.
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).
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.