webForumDet fria alternativet

SQL-sats för någon pigg?

Databaser & SQLur Databashanterare & SQL

2 svar · 295 visningar · startad av Thomasa

ThomasaMedlem sedan aug. 2002351 inlägg
#1

hello!

Jag har fastnat lite, eller vår server fastnar när jag kör min sida som ska filtrera restauranger..

Det finns två tabeller som är aktuella för denna fråga:
Restauranger som innehåller restid (PK), Restaurangnamn, Tel, Adress

En tabell som heter restkat (restaurangerkategorier),
restid, katid

(samt en kategorier men den ska inte behöva användas just nu..)

På själva sidan så ska samtliga restauranger visas som har de egenskaper som anges i restkat, alltså innehåller de kategorier som filtrena visar. Det är 5 filter på sidan och bara de restauranger som har de rätta egenskaperna från alla filter ska visas. Är inget valt i ett filter ska det självklart inte påverka sidan.

Den lösning jag har nu fungerar så att jag kör flera SELECT satser där jag skriver ex:

SELECT restid FROM restkat WHERE katid LIKE '4' AND restid IN (SELECT restid FROM restkat WHERE katid LIKE '3')

Jag upprepar samma IN procedur tills jag får alla 5 filter.. När det inte är något aktiverat i ett filter byter jag ut siffran mot %

Därigenom får jag alltså ut de restaurangid:n som är kopplade mot egenskaperna 4 och 3 i restkat. Men denna variant fungerar inte särskillt bra, finns det någon annan lösning?

Tacksam för alla tips!

God afton! /Thomas

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select restaurangNamn,tel,adress
from restauranger
where restid in (
  select restid 
     from restKat
  where katid in (3,4)
   group by restid
  having count(restid) = 2)
ThomasaMedlem sedan aug. 2002351 inlägg
#3

tackar!

124 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)