26. marts 2013 - 13:47Der er
15 kommentarer og 1 løsning
SELECT til søgefunktion
Jeg er i gang med en søgefunktion, hvor man kan søge på profiler. Profilerne skal findes på baggrund af hvilke kategorier og områder man har valgt i søgefunktionen.
Jeg skal altså have lavet en database-forespørgsel, der går ned i 2 tabeller (profileCategories og profileAreas) og finder de profiler som eksisterer i dem begge.
profileCategories indeholder kolonnerne: 'id', 'ProfileId', 'CategoryId' profileAreas indeholder kolonnerne: 'id', 'ProfileId', 'AreaId'
Har man valgt området Ribe(som f.eks har id 30) og kategorien IT(som f.eks har id 50) i søgefunktionen, skal jeg selecte alt i tabellen profileCategories hvor 'CategoryId' er 50 og herefter finde ud af om samme profil eksistere i tabellen profileAreas hvor 'AreaId' er 30.
Jeg kunne selvfølgelig starte med at finde alle i profileCategories hvor CategoryId=50 og derefter loope alle rækker igennem for at finde ud af om det samme profileId ligger i profileAreas hvor fldAreaId=30, men det performer nok rimelig skidt.
Kan godt forstå, hvis der er sort snak.. Har lidt svært ved at forklare mig, når jeg selv er ret lost. ;)
SELECT * FROM profileCategories JOIN profileAreas ON profileCategories.ProfileId=profileAreas.ProfileId WHERE profileCategories.CategoryId=50 AND profileAreas.AreaId=30
SELECT * FROM tblAdsCategories JOIN tblAdsAreas ON tblAdsCategories.fldAdId=tblAdsAreas.fldAdId WHERE tblAdsCategories.fldCategoryId IN(16, 19, 20) AND tblAdsAreas.fldAreaId=7
Returnerer 0 rækker.
I virkeligheden er der 1 AdId som kvalificerer sig. (ad id 1141)
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.