mboost-dp1

SQL: Søge på samme felt flere gange


Gå til bund
Gravatar #1 - plazm
30. apr. 2010 19:57
Jeg sidder og leger lidt med søgning på samme felt og kan ikke rigtigt beslutte mig for hvad der er bedste måde at gøre det på, min tabel er noget i stil med

id, rel_id, info
1, 1, ost
2, 2, hest
3 ,1, kim
4, 1, kat
5, 2, kim

hvor rel_id holder informationerne samlet, og nu har jeg så f.eks. 3 søgeord som kan passe på info for at den skal returnere det rel_id som de passer på.

så hvis jeg søger på kim og kat så skal der returneres 1, hvis jeg bare søger på kim så skal der returneres 1,2

Jeg kan sagtens se det kan løses ved at bruge tabellen flere gange, men er det så smartest at bruge join eller rel_id in?

join
SELECT rel_id FROM tabel a INNER JOIN tabel b ON a.rel_id=b.rel_id WHERE a.info=kim AND b.info=kat

rel_id in
SELECT rel_id FROM tabel a WHERE a.info=kim AND rel_id IN (SELECT rel_id FROM tabel b WHERE b.info=kat)

Eller er der en endnu bedre måde?
Gravatar #2 - arne_v
30. apr. 2010 23:20
#1

Jeg ville bruge self joinen.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login