Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/01/2010, 19:18
Avatar de seinkraft
seinkraft
 
Fecha de Ingreso: diciembre-2007
Mensajes: 119
Antigüedad: 16 años, 4 meses
Puntos: 1
Ayuda con query

Tengo un pequeño sistema de galerias con taxonomy en las imagenes.

El sistema esta compuesto por tres tablas, una almacena las imagenes y le asigna una id a cada imagen, otra guarda las tags y asigna una id a cada tag y la ultima vincula el id de la tag con la ide de la imagen.

(images.id) <---> (nodes.image_id | nodes.tag_id) <---> (tags.id | tags.tag)

Y el problema que estngo es que no puedo realizar una busqueda de imagenes por dos o mas tags, es decir, si busco "car wheels" para que me devuelva las ids de la imagenes que contengan como tag "car" y "wheels" a su vez.

Este es my query actual:

Código SQL:
Ver original
  1. SELECT images.*
  2. FROM images
  3. JOIN nodes
  4. ON images.id = nodes.image_id
  5. WHERE tag_id
  6. IN (SELECT tags.id FROM tags WHERE tags.tag IN ('car','wheels'))
  7. GROUP BY images.id

El problema es que el primer IN en vez de "filtrar" los resultados los suma...es decir no busca por "car wheels" sino que busca todas las imagenes que contenga el tag "car" y las suma con los resultados de la busqueda de "wheels" por lo que falla.

Ayuda por favor.