Avatar billede sneakraid Nybegynder
01. oktober 2005 - 14:36 Der er 7 kommentarer og
1 løsning

udtræk fra database?

Hej experter.

Jeg skal have hjælp til lidt asp og lidt database. Jeg har en tabel som hedder (Firma) og en anden tabel der hedder (emneord). Under (Firma) er der selvf. en masse kolonner med info og en kolonne med en ID (autogenereret). I (emneord)'s tabellen er der en kolonne med en masse emneord som dækker over hvad firmaerne sælger og en kolonne med (firmaid) hvor jeg har skrevet de firmaers id'er, som passer under det enkelte emneord. Jeg har så lavet en relation mellem kolonnen (firmaid) fra tabellen (Emneord) mellem kolonnen (ID) fra tabellen (Firma).

Hvis jeg så laver et udtræk fra databasen i tabellen (Emneord), og tager f.eks. emneordet [Aviser og Blade] .. Så har jeg udtrukket emneordet [Aviser og Blade] og firmaid'er [2, 24, 13] ... hvordan kan jeg så bruge de 3 firmaid'er til at finde butikkerne i den anden tabel og få udskrevet dem ?
Avatar billede softspot Forsker
01. oktober 2005 - 14:45 #1
"...butikkerne i den anden tabel...", det er så en tredie tabel som du ikke har beskrevet, eller hvad?

Jeg synes din beskrivelse af de to første tabeller var noget nær perfekt, men butikstabellen (hvis der altså findes sådan en), fik vi slet ikke noget info om og den lader da til at være rimelig vigtig i denne sammenhæng... :)

Anyway! Det lader til at du har begreb om databasedesign, så jeg antager at du har sørget for at lave en relation mellem butikker og firma og så er det vel bare et spørgsmål om at hente de butikker hvor firmaid er et af dem som du fandt udfra emneordene:

SQL = "SELECT * " & _
  "FROM butik " & _
  "WHERE firmaid IN (" & firmaider & ")"

og firmaider er altså dem du har fundet via emneordene [2, 24, 13]
Avatar billede sneakraid Nybegynder
01. oktober 2005 - 20:08 #2
hehe det ser nu ud som om du har forstået "opgaven" godt nok. Det virker præcis som jeg ville have det til. Du er GUD softspot, tak for hjælpen .. du har lige reddet min weekend :D

Smid lige et svar !
Avatar billede softspot Forsker
02. oktober 2005 - 00:08 #3
OK, ren og skær "lucky shot" fra min side :D
Avatar billede sneakraid Nybegynder
02. oktober 2005 - 17:01 #4
Hehe det var nu et godt "shot" :) . Men du slipper ik lige for mig, fordi nu har jeg jo lige et enkelt spørgsmål,hvis det i orden, da jeg kunne se du ved en del om det.

Tabellen (emneord) som jeg snakkede om i mit første indlæg, indeholder som sagt en kolonne som indeholder emneord plus en kolonne som indeholder synonymer. Det kan nok lettest beskrives ved at sige, at der f.eks. i feltet emneord, står Biler og Tilbehør, og i feltet ved siden af, står der dæk, fælge, styling, bilrude osv. som jo alt sammen går ind under emneordet (Biler og Tilbehør). Nu vil jeg gerne have lavet en søgning, sådan at man kan søge efter emneord, men også synonymer. Så hvis jeg f.eks. søger efter dæk, så får jeg (Biler og Tilbehør) frem.

Lyder det for indviklet, eller har du en smart metode det kunne gøres på. Jeg har selv noget i tankerne, men jeg kunne godt tænke mig at høre hvordan du f.eks. ville gøre det :)
Avatar billede softspot Forsker
02. oktober 2005 - 17:39 #5
Jeg ville umiddelbart benytte mig af LIKE, da ordene vel står i en kommasepareret streng i feltet synonymer. Altså noget i stil med dette:

SELECT * FROM emneord WHERE ord LIKE '*dæk*' OR synonymer LIKE '*dæk*'

Hvis nu det er dæk man leder efter. Hvis der er indtastet flere ord man vil søge efter, ville jeg først i scriptet splitte ordene op og derefter generere en SQL som indeholdt alle ordene hver for sig. Eksempel:

søgning efter ruder, dæk, ventiler

ville resultere i flg. SQL:

SELECT *
FROM emneord
WHERE
  ord LIKE '*ruder*'
OR synonymer LIKE '*ruder*'
OR ord LIKE '*dæk*'
OR synonymer LIKE '*dæk*'
OR ord LIKE '*ventiler*'
OR synonymer LIKE '*ventiler*'

Det er muligt at du skal benytte % i stedet for *, men du ved sikker allerede selv hvilken der skal benyttes... :)
Avatar billede softspot Forsker
02. oktober 2005 - 17:59 #6
Det kan i øvrigt godt være du skal lade være med at kalde din kolonne for ord (men det gør du sikkert heller ikke :))...
Avatar billede sneakraid Nybegynder
02. oktober 2005 - 20:02 #7
Okay ja, det var noget lign. jeg havde tænkt mig at lave .. men det sidste med at splitte op lyder meget spændende, men nu må jeg se om jeg kan få det til at virke her senere. Men igen, mange tak for hjælpen softspot :)

Du får lige dine velfortjente point ;) hehe .
Avatar billede softspot Forsker
02. oktober 2005 - 20:39 #8
Velbekomme og tak for point :)
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