Creo comprender cual es tu problema.
Cuando decís
Cita: Mi "gran" problema es que no soy capaz de realizar una consulta que me diga la id del producto COLOR VERDE y TALLA MEDIANA....
Estas refiriendote a un ejemplo... supongo que el talle y el color llegaran de un parámetro de alguna aplicación... que no estás trabajando directamente con la base de datos.
Pero supongamos que si.
Lo que no debes perder de vista es LO QUE QUERÉS OBTENER EN EL RESULTADO.
Esto es:
Cita: SELECT * FROM atributos WHERE atri_id=1 AND valor=verde AND atri_id=2 AND valor=mediana
Estas pidiendo todos los registros de color verde, talla mediana con el id de atributo 1 mmmm creo que no sería el objetivo de tu consulta.
Yo haría:
SELECT PROD_ID, VALOR FROM ATRIBUTOS WHERE (ATRI_ID=1 AND VALOR='VERDE') AND (ATRI_ID=2 AND VALOR='MEDIANA')
De esta manera, el codigo del producto te va a aparecer más de una vez, porque... segun la estructura de tu tabla, tenes un registro para indicar que es verde, y otro para que es mediano... y así por todos los atributos.
Te recomendaria, si está a tu alcance, normalizar los datos para tener:
-Una tabla productos
-Una tabla por cada atributo.
-Una relacional de productos/atributos
Por lo menos.
Esero haber sido de ayuda