la consulta imposible???

Martin Troielli
28 de Agosto del 2003
Hola amigos, a ver si me pueden dar una mano con esta consulta...

Apenas la pensé me pareció que iba a ser sencilla, pero ahora estoy pensando en que no hay forma de hacerla...

Es asi, tengo una tabla con 3 campos:
t_categorias_contenido: id_contenido id_categoria proximidad

La proximidad es un entero de 1..3

La consulta tiene que recuperar en base a dos parametros ("categoria", "subcategoria") todos los id_contenido que tengan

id_categoria = "categoria" con proximidad 3 y id_categoria = "subcategoria" con proximidad 1 o 2.

Tengo que recuperar los contenidos que tengan en algun registro:"categoria" en proximidad 3 y además en otro registro la

"subcategoria" en proximidad 2 o 1.

Ejemplo:

Parametros:
"categoria" = 4
"subcategoria" = 5

un registro:
id_contenido: 3
id_categoria: 4
proximidad: 3

otro registro:
id_contenido: 3
id_categoria: 5
proximidad: 2

otro registro:
id_contenido: 3
id_categoria: 6
proximidad: 2

otro registro:
id_contenido: 4
id_categoria: 6
proximidad: 2

Teniendo estos registros en la tabla, recuperaría el id_contenido 3 porque tiene la categoria 4 en proximidad 3 y la

subcategoria 5 en proximidad 2.

Parece simple pero, es posible???

PD: trabajo con mysql 3.23

Gracias desde ya Martin

Amarillo
28 de Agosto del 2003
Aqui va tu consulta, me llamo la atencion lo de imposible y quize ver si realmente para mi lo era. Aqui tienes la respuesta, no la hice por genio sino por testarudo. La hice en Access, debe ser casi lo mismo en Mysql.
SELECT
idcontenido
FROM Proximidad
WHERE (((proximidad)=3) AND ((idcatgoria)=[Categoria]))
UNION
SELECT idcontenido
FROM Proximidad
WHERE (((proximidad)=1 Or (proximidad)=2) AND ((idcatgoria)=[Subcategoria]));
Espero te sirva. Me costo algo de trabajo descifrar lo que realmente querias.
Suerte y Chao.