Avatar billede mart1n Nybegynder
09. januar 2006 - 14:59 Der er 3 kommentarer og
1 løsning

Array intersect

Jeg er i gang med at lave en søgefunktion til en af mine applikationer i ASP og MSSQL. Da jeg normalt arbejder med PHP og MySQL er det ikke ligefrem min stærke side.

Selve søgningen er delt op i "under-søgninger" som hver henter noget fra en række forskellige tabeller:
- SELECT userid FROM users INNER JOIN tabel1 ON users.userid = tabel1.userid WHERE felt1 = 'whatever'
- SELECT userid FROM users INNER JOIN tabel2 ON users.userid = tabel2.userid WHERE felt2 = 'whatever'
- SELECT userid FROM users INNER JOIN tabel3 ON users.userid = tabel3.userid WHERE felt2 = 'whatever'
- Osv...

Der kan være et variabelt antal søgninger alt efter hvad man vælger.

Det jeg skal bruge er en funktion der giver de rækker der findes i alle søgningerne, f.eks. hvis resultatet fra tabel1 giver 1,2,5,6, tabel2 giver 2,3,4,5 og tabel3 giver 1,2,4,5 skal det samlede resultat være 2,5.

Jeg har før lavet noget lignede i PHP med funktionen array_intersect. Nogen der har nogle forslag til hvordan man laver noget lignende i ASP? Eller er det muligt at gøre det direkte i databasen? Har prøvet, men MSSQL understøtter ikke INTERSECT, så jeg kan ikke lige overskue hvordan det skulle gøres.
Avatar billede Slettet bruger
09. januar 2006 - 15:20 #1
Tjae... Jeg ved det ikke rigtigt... Men du kunne måske starte med at lave alle de loops der skal til og i dem så lave en sætning som giver anledning til en split...
- Det kan måske lade sig gøre det her...
Kan man ikke bare lave noget a la det her:
<%
tabel1=tabel1 & rs("DinStreng") & ","
%>
Så får du jo det samlede resultat efter loopet... Og så kan man vel lave en flok split funktioner bagefter alle dine loops som sammenligner tallene og kommer med det hvis det findes i alle tabellerne...

\Dan
Avatar billede Slettet bruger
09. januar 2006 - 15:21 #2
^^^ - Mit bedste bud... Men meget besværligt...
Avatar billede tjp Mester
09. januar 2006 - 15:51 #3
Hvis du kender højeste 'userid' kan du evt. udnytte at A intersection B er lig med komplementærmængden til A og B's forenede komplementærmængder!
Avatar billede mart1n Nybegynder
12. januar 2006 - 13:48 #4
Lukker...
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