Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-02-2009, 18:21   #1
anonimizzato
 
Messaggi: n/a
[SQL] alberatura a livelli incogniti

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:

Codice:
categoriaID
categoria_parentID
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.

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.

Ultima modifica di anonimizzato : 12-07-2009 alle 11:29.
  Rispondi citando il messaggio o parte di esso
Old 16-02-2009, 18:49   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Se il motore che usi e' Oracle, l'estensione per le query ricorsive ad albero e' gia' presente da parecchi anni.

Se non usi Oracle ma sai a priori che il numero massimo di ascendenti e' fisso, come 3, allora si puo' fare in SQL standard, non troppo elegante ma funzionale


Codice:
SELECT ID1.Nome,ID2.Nome,ID3.Nome
FROM tabella ID1
LEFT OUTER JOIN tabella ID2 ON (id1.id=id2.parentid)
LEFT OUTER JOIN tabella ID3 ON (id2.id=id3.parentid)
WHERE ID1.parentid is NULL
Forse avevi dimenticato la clausola WHERE di inizio, ovvero chi sta al primo livello avra' nessuno come parent.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2009, 19:08   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Se devi usare questa query all'interno di qualche linguaggio (mi immagino PHP), ricostruisciti l'albero tramite codice nel linguaggio che usi
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2009, 19:50   #4
CozzaAmara
Senior Member
 
L'Avatar di CozzaAmara
 
Iscritto dal: Nov 2008
Messaggi: 411
edit.
__________________
CozzaAmara è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2009, 19:53   #5
anonimizzato
 
Messaggi: n/a
Si esatto, uso PHP e avevo già pensato a questa soluzione.

Solo volevo capire se ci fosse un modo più "elegante" per farlo direttamente in SQL.
  Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Il mercato smartphone potrebbe registrar...
Apple punterà sull'architettura c...
NASA Curiosity: i processi non biologici...
Sega conferma l'arrivo di tanti nuovi gi...
La serie POCO X8 è pronta al debu...
Apple conferma che l'arrivo della 'nuova...
Le vendite di Square Enix sono in netto ...
iPhone 17e si mostra in un video 'first ...
Il nuovo Xiaomi Watch 5 è pronto ...
Steam Deck è out of stock in dive...
Le migliori offerte Amazon del weekend, ...
PC più potente, meno spesa: su Amazon ta...
Amazon Haul: come fare acquisti 'pazzi' ...
Threads permetterà agli utenti di...
Monitor gaming in offerta su Amazon: 180...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v