Hente række hvor enkelt felt er unikt, null eller ' '

Tags:    databaser

Hej.

Jeg arbejder med en database i øjeblikket hvor brugere har mulighed for at tilknytte flere emner sammen, og hvis dette gøres skal kun ét af emnerne returneres.

Men kan ikke helt gennemskue hvordan jeg skal lave dette:

Jeg skal have alle rækker i en tabel(”Brugere”), hvor en kolonnes felt(”Variant”) enten er unikt(hvis der står noget i feltet), Null eller en tom streng(’’).

Så hvis der er nogen som kan hjælpe mig på vej ville det være fantastisk.

På forhånd tak.
Scorp-D



8 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Noget i retning af:
Fold kodeboks ind/udSQL kode 




Indlæg senest redigeret d. 15.08.2008 09:30 af Bruger #5620
SELECT DISTINCT * FROM brugere GROUP BY variant

eller

SELECT DISTINCT * FROM emner
INNER JOIN brugere ON emner.bruger = brugere.id
ORDER BY emner.id,
GROUP BY brugere.variant
LIMIT 1

Eller noget i den stil - det er svært når forklaring er en smule mangelfuld.



Indlæg senest redigeret d. 14.08.2008 18:13 af Bruger #10216
Let nok...
Fold kodeboks ind/udSQL kode 





Ved ikke rigtig hvad jeg ellers kan forklare om den....

Det eneste jeg skal gøre er følgende:

SELECT ForhandlerNr, Beskrivelse, Navn, Gruppe, Vejledende, BilledNavn, Variant
FROM Vare

Hvis der er flere af samme "Variant" skal der bare vises én af dem.

Alle andre som har Variant = null eller "" skal bare vises.

Her er et DB-Diagram, rimelig simpelt:

http://scorp-d.dk/db-diagram.JPG



Let nok...
Fold kodeboks ind/udSQL kode 




Får en fejl "nær" '0'....



LIMIT er vel kun i MySQL i SQL92 hedder det vist TOP så vidt jeg husker



Jeg har kigget på 'Nørdens' forslag, og lavede det lidt om så hver enkel del fungere. Men kan ikke få Union til at fungere.

Det er disse to dele som virker:

Fold kodeboks ind/udSQL kode 


Fold kodeboks ind/udSQL kode 





Nå kunne jo bare lægge Where statements sammen så det gav følgende:

Fold kodeboks ind/udSQL kode 





t