Avatar billede blach Nybegynder
13. marts 2006 - 22:23 Der er 10 kommentarer og
1 løsning

DISTINCT i SELECT på 2 data

Jeg har gemt nogle tal, som kan være dubletter (og disse skal sorteres fra). Følgende sætning virker fint:
SELECT distinct(tal) FROM ...

Men jeg skal hente andet fra den tabel end de tal - og hvis jeg forsøger at hente disse ting, så får jeg enten fejl eller så henter den dubletterne ud 2 gange (fordi de data er forskellige)

Problemet lyder som dette: (dog ingen løsning)
http://www.eksperten.dk/spm/241782
Avatar billede fixxxer Nybegynder
13. marts 2006 - 23:15 #1
"distinct fjerner dubletter, men du har kun sagt at det er navn der skal være distinct. Hvis der er to navne der er identiske men med forskellig adresse så vil der komme to poster."

Du skal tænke i et andet database design for at fyre sådan et stunt af..
Avatar billede fixxxer Nybegynder
13. marts 2006 - 23:20 #2
Lidt nærmere forklaring:

Du kan ikke først vælge at fjerne alle dubletter, men også ville have alle de records der svarer til de dubletter du lige har bedt om at få fjernet..

Set fra endda et fysisk synspunkt virker det da ulogisk !-)


Det du skal gøre er at lave en lille relationstabel hvor du gemmer alle de "andre ting", og kæder dem til deres tilhørende record i tal-tabellen.

Nu er det dog ufatteligt svært at forestille sig noget, der blot er beskrevet, så hvis du kan diske op med dit konkrete layout, kan jeg måske hjælpe dig..
Avatar billede blach Nybegynder
13. marts 2006 - 23:39 #3
Okay.. ja kan godt se problemet...

Mit database layout er:
id, int (unikt)
tal, int (disse kan være ens, altså disse er dubletter)
navn, vachar (disse er som regel forskellige)

Jeg vil gerne have SELECT'et tal og navn... (og ikke 2 med samme tal)
Avatar billede fixxxer Nybegynder
13. marts 2006 - 23:47 #4
I hvilken application skal resultatet bruges eller vises?
Avatar billede blach Nybegynder
13. marts 2006 - 23:49 #5
En hjemmeside i PHP.
Avatar billede fixxxer Nybegynder
13. marts 2006 - 23:51 #6
Hvordan forestiller du dig at resultatet skal se ud på siden?

Et bud

Tal: 1
Bent, Hans

Tal: 2
Brian, Mikkel
Avatar billede blach Nybegynder
13. marts 2006 - 23:57 #7
ja.. sådan noget lignende det vile være meget fint! Bare jeg kan få fat i begge data, og den henter dem i sortering af tal
Avatar billede fixxxer Nybegynder
14. marts 2006 - 00:01 #8
Så tænk i to kald i stedet for et.

$query = mysql_query("SELECT DISTINCT(tal) FROM tabel ORDER BY tal");
while ($fetch = mysql_fetch_assoc($query)) {
  echo 'Tal '.$fetc['tal'];

  $query2 = mysql_query("SELECT navn FROM tabel WHERE tal = '".$fetch['tal']."'");
  while ($fetch2 = mysql_fetch_assoc($query2)) {
    echo $fetch2['navn'];
  }
}


Det burde give dig en idé hvad jeg mener.
Avatar billede blach Nybegynder
14. marts 2006 - 20:33 #9
Ja, jeg tænkte det nok ;) Var faktisk selv ved at rode med sådan en "dobbelt-query"...
Men tak for hjælpen, det er da rart at vide at det ikke er helt skidt at benytte sig af sådan en løsning ;)
Avatar billede fixxxer Nybegynder
15. marts 2006 - 01:23 #10
Så vil jeg lige smide et svar :)
Avatar billede blach Nybegynder
15. marts 2006 - 14:25 #11
Det er modtaget!
Har du forstand på JavaScript også? Har denne som hænger:
http://www.eksperten.dk/spm/685504
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