tengo una consulta que filtra caraterísticas de productos por una tabla relacional.
Sería algo así:
Código PHP:
Tabla productos:
idproducto -> autoincrement
nombre -> char
Tabla caracteristicas:
idcarac -> autoincrement
nombre -> char
Tabla relacional producos-características
idproducto -> int
idcarac -> int
Código PHP:
Select p.nombre From productos p Where p.idproducto IN
(Select idproducto From caracteristicas_rel Where idcarac IN (4,7,8)
and idproducto=p.idproducto);
Si yo tengo dos productos, imaginemos dos discos duros:
- Disco duro 1
- Características 500Gb
- Disco duro 2
- Características 600Gb
Y en la web marco 500Gb como característica, me extraerá el disco 1, pero si marco 500Gb y 600Gb entonces me extrae el disco 1 y 2, cuando no debería de extraer ninguno, ¿entienden?
Ya que al seleccionar la dos características estos dos productos NO cumplen con el criterio, es decir, o son de 500 o 600gb
¿Cómo puedo hacer la consulta para que fuerce a sacar sólo los productos que tengan TODAS las características marcadas.
Haciendo un Inner Join no me vale, más que nada porque tengo muchas tablas relacionadas más.
Gracias a todo el mundo!