Hola amigos, estoy atorado con una consulta SQL y francamente ya no doy con la forma de ejecutarla, doy vueltas y vueltas a lo mismo. Ojala alguien pierda cinco minutos y me tire un cable.
SITUACIÓN:
1.- Estoy montando una tienda virtual, en una tabla tengo las categorías de la tienda, en otra los productos.
2.- En la tabla de categorías, hay un campo numerico que identifica a cada categoría (CatId) y otro que indica si es la subcategoría de otra categoría (ParentCatId). En el campo ParentId se introduce el CatId de la categoría de la que depende, así genero un árbol de navegación.
3.- En la tabla de productos, cada producto lo relaciono con su categoría, mediante un campo llamado tambien CatId.
PROBLEMA:
1.- Al entrar en la tienda, muestro a un lado las categorías, si se escoge una categoría, muestro las subcategorías que dependen de esta, y así sucesivamente.
2.- Quiero que al hacer click sobre una categoría muestre los productos que cuelgan de esta, pero si no hubiera ninguno, pero si los hubiera en alguna subcategoría, o en una subsubcategoría, los muestre. Así siempre muestro productos relacionados con la categoría principal.
ESTRUCTURA DE LAS TABLAS
Tabla: Tienda_Cats
Id de cada categoría es el campo: CatId
Campo que relaciona cada categoría con su categoría superior de esta misma tabla: ParentCatId
Tabla: tienda_productos
Campo que relaciona a cada producto con su categoría: CatId
LA CONSULTA SQL:
Estoy probando con algo así, pero no consigo que me muestre los productos de las subcategorías relacionadas con la categoría:
SELECT tienda_productos.ProdNombre FROM ((tienda_productos LEFT JOIN tienda_impuestos ON tienda_productos.Id_impuesto = tienda_impuestos.Id_impuesto) LEFT JOIN Tienda_Cats ON Tienda_Cats.CatParentId = tienda_productos.CatId WHERE tienda_productos.CatId =" & variableCatId &" OR Tienda_Cats.CatParentId =" & variableCatId &"