Ciao a tutti, cerco subito di spiegare il problema:
Ho una porzione di DB che in relazione a certi prodotti associa una categorizzazione "FINO" a 3 livelli.
Avendo come idea questo schema:
Categoria > sotto_categoria > sotto_sotto_categoria
Io posso avere un prodotto in uno qualsiasi di questi livelli quindi, a priori, non conosco il livello di "profondità" di un prodotto.
La tabella delle categorie è unica dove per tenere traccia della struttura utilizzo la classica situazione:
Nell'SQL di recupero dati referenzio appunto 3 volte la stessa tabella in modo da costruire i 3 (max) livelli, ma da qui il problema.codice:categoriaID categoria_parentID
Provate subito a guardare l'allegato per avere un'idea chiara.
Quando ho 3 livelli, gli stessi si dispongono nella SELECT nella situazione ideale, mentre se sono di meno ho valorizzati a "NULL" i campi sbagliati.
Questo molto semplicemente perchè, nel ricostruire l'alberatura, parto dall'ID della categoria associata al prodotto e RISALGO, tuttavia, non conoscendone a priori il livello di "profondità" non so come presentare nella SELECT SQL i dati nel modo corretto.
Per chiarirci, il penultimo record recuperato (vedi allegato) dovrebbe avere:
Categoria: Cucito
Categoria2: Tagliacuci
Categoria3: NULL
Invece mi ritrovo con:
Categoria: NULL
Categoria2: Cucito
Categoria3: Tagliacuci
Potete aiutarmi?
Grazie.