Avatar billede chrisrj Forsker
17. januar 2003 - 00:28 Der er 13 kommentarer og
1 løsning

Kun et resultat fra samme post (sql)

Jeg har denne sql sætning:
SELECT * FROM profiler, services WHERE (profiler.service LIKE '%søgeord%' or services.service LIKE '%søgeord%' or profiler.services LIKE '%søgeord%') ORDER BY navn DESC

Men den returnere data fra den samme profil flere gang, hvis denne profil har flere services hvori søgeordet forkommer.

Jeg er IKKE en sql haj - derfor spørger jeg jer. :)
Jeg regner med at det er noget med nogle joins eller sådan noget...rigtigt?
Avatar billede niceday Nybegynder
17. januar 2003 - 04:48 #1
Du skal bruge Distinct i dit sql-kald, da denne funktion sikre at kun én post med et forskelligt indhold vises - som du skriver.

SELECT DISTINCT profiler FROM profiler, services WHERE (profiler.service LIKE '%søgeord%' or services.service LIKE '%søgeord%' or profiler.services LIKE '%søgeord%') ORDER BY navn DESC
Avatar billede niceday Nybegynder
17. januar 2003 - 04:56 #2
Læs mere på: http://www.w3schools.com/sql/sql_distinct.asp

Her kan du også læse om flere andre meget anvendelige metoder :-)
Avatar billede chrisrj Forsker
17. januar 2003 - 16:54 #3
Jeg har nu denne sætning:

SELECT DISTINCT profiler, services FROM profiler, services WHERE (profiler.service LIKE '%med%' or services.service LIKE '%med%' or profiler.services LIKE '%med%') ORDER BY navn DESC

Men får denne fejl:
ORDER BY-delsætningen (navn) er i konflikt med DISTINCT.


Skriver jeg derimod:----||----------||
SELECT DISTINCT profiler.*, services.* FROM profiler, services WHERE (profiler.service LIKE '%med%' or services.service LIKE '%med%' or profiler.services LIKE '%med%') ORDER BY navn DESC

Kommer der "kun" fejl i koden:
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.

I denne linie:
<a href="profil.asp?side=<%=rsEntries("services.brugerid")%>">

Og brugerid findes i den tabel og kun der.

Skriver jeg "rsEntries("id")"(id er fra profiler tabellen) kommer samme fejl her:
<%=rsEntries("profiler.navn")%></a>

Som også findes i den tabel(profiler) og også kun i den.

Er det bare mig eller er det underligt??
Avatar billede niceday Nybegynder
17. januar 2003 - 17:30 #4
Nej, det er min sætning der ikke kalder andre kolonner end profiler og services - du skal tilføje de elementer, som du vil bruge på siden:

SELECT DISTINCT profiler, services, navn FROM profiler, services WHERE (profiler.service LIKE '%med%' or services.service LIKE '%med%' or profiler.services LIKE '%med%') ORDER BY navn DESC

Bemærk her at jeg har tilføjet navn og brugerid - bruger du flere data skal de hentes ved at skrive kolonnens navn i sætningen, som mit eksempel. Skal der bruges rigtig mange ting, kan du nøjes med at skrive f.eks. services.* eller bare *

:-)
Avatar billede niceday Nybegynder
17. januar 2003 - 17:31 #5
SELECT DISTINCT profiler, services, navn, brugerid FROM profiler, services WHERE (profiler.service LIKE '%med%' or services.service LIKE '%med%' or profiler.services LIKE '%med%') ORDER BY navn DESC

Så er brugerid også med :-)
Avatar billede chrisrj Forsker
17. januar 2003 - 19:09 #6
Som jeg skrev før:

Skriver jeg derimod:------||--------||
SELECT DISTINCT profiler.*, services.* FROM profiler, services WHERE (profiler.service LIKE '%med%' or services.service LIKE '%med%' or profiler.services LIKE '%med%') ORDER BY navn DESC

har jeg prøvet med "profiler.*, services.*".
Det virker heller ikke.
Avatar billede niceday Nybegynder
17. januar 2003 - 19:15 #7
Nej, men det er vigtigt at det der kommer lige efter DISTINCT kun angiver en specifik kolonne, som f.eks.:

SELECT DISTINCT services.brugerid, navn, brugerid FROM profiler, services WHERE (profiler.service LIKE '%med%' or services.service LIKE '%med%' or profiler.services LIKE '%med%') ORDER BY navn DESC
Avatar billede chrisrj Forsker
17. januar 2003 - 19:46 #8
Ok, NU forstår jeg det! :)

Men, men...det virker stadig ikke... :(

Der kommer ingen fejl, men samme profil bliver stadig skrevet ud flere gange.

Her er min sql:
SELECT DISTINCT profiler.id, profiler.landsdel, profiler.navn, profiler.telefon, profiler.massage, profiler.escort, services.brugerid FROM profiler, services WHERE (profiler.service LIKE '%med%' or services.service LIKE '%med%' or profiler.services LIKE '%med%') ORDER BY navn DESC
Avatar billede chrisrj Forsker
17. januar 2003 - 20:26 #9
Det er måske værd at nævne at hver profil kan have/har flere services tilknyttet...
Avatar billede chrisrj Forsker
07. februar 2003 - 10:21 #10
jeg fik ikke brug for det alleligevel...:(
Avatar billede niceday Nybegynder
07. februar 2003 - 10:55 #11
Det er da ikke et argument for at afvise et svar.

Når du stiller et spørgsmål, så er det med henblik på at få svar. Tænkt på vi andre brugere, som forsøger på at hjælpe dig bruger tid på det.
Avatar billede chrisrj Forsker
07. februar 2003 - 11:03 #12
Bevares, hvis du vil have nogle point for din tid, kan jeg da godt oprette et spg til dig...
Avatar billede niceday Nybegynder
07. februar 2003 - 14:45 #13
Det behøver jeg ikke :-)

Men reglen er jo - svares et spørgsmål falder der points.
Avatar billede chrisrj Forsker
07. februar 2003 - 15:00 #14
Joh, men der var jo ingen løsning på problemet - kun forslag...
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
Kurser inden for grundlæggende programmering

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