Joomla.it Forum
Non solo Joomla... => Database => : mdgb 05 Sep 2007, 14:23:12
-
Ciao a tutti!
Ho un problemino che mi sta facendo impazzire
La situazione è questa.
Ho uno shop online in preparazione e devo creare uno script in php che mi permetta di esportare una serie di informazioni dal catalogo prodotti a un file txt per inviarlo ai vari comparatori di prezzi.
Il problema è che le info in questione sono su 6 tabelle diverse con chiavi diverse.
La struttura è la seguenteriporto solo i campi interessati)
Primo livello:
vm_product (contiene la maggior parte delle info ed è ordinata per product_id)
Secondo livello: hanno tutte il campo product_id
vm_product_price (contiene due colonne product_id e product_price)
vm_product_mf_xref ( contiene product_id e manufacturer_id), da collegare a vm_manufacturer
vm_product_category_xref(contiene product_id e category_id) da collegare a vm_category
Terzp livello:
vm_manufacturer (contiene manufacturer_id e mf_name)
vm_category (contiene category_id e category_name)
DOMANDA DA UN MILIONE DI €!
come si fa a fare una mega query che prnda tutti i dati collegandoli tra di loro ordinati per product_id e restituisca una tabellona da cui andare a generare l'output?
Ho già provato varie join ma riesco a collegare solo tabelle con chiave comune e cmq fino a tre tabelle poi iniziano gli errori e data la mia scarsa esperienza con php sto veramente impazzendo!
Grazie anche solo per aver letto la domanda.
Marco
-
Mi hanno fatto notare che la spiegazione non era delle migliori.
Cerco di spiegarmi meglio.
Le tabelle sono 6 vm_product, vm_product_price , vm_product_mf_xref , vm_product_category_xref, vm_manufacturer, vm_category
Le ho divise per "livelli" solo per far vedere che tra primo e secondo livello abbiamo il product_id in comune mentre tra secondo e terzo livello abbiamo category_id per collegare vm_product_category_xref con vm_category e manufacturer_id per collegare vm_product_mf_xref e vm_manufacturer.
mi scuso per il linguaggio ma, come detto, non sono molto pratico.
-
lo stesso VM usa degli script per elaborare il database.
il concetto è che alcuni campi sono giustamente di richiamo ossia il product_sku e product_id servono proprio a collegare le varie tabelle tra loro.
ci sarebbe un sistema che forse è più semplice, ossia quello di usare l'export in csv di tutti i dati e poi lavorare li
in locale adoperi mysql o database tipo access?
-
Le tabelle sono 6 vm_product, vm_product_price , vm_product_mf_xref , vm_product_category_xref, vm_manufacturer, vm_category
Le ho divise per "livelli" solo per far vedere che tra primo e secondo livello abbiamo il product_id in comune mentre tra secondo e terzo livello abbiamo category_id per collegare vm_product_category_xref con vm_category e manufacturer_id per collegare vm_product_mf_xref e vm_manufacturer.
dai un occhio qui (http://forum.html.it/forum/showthread.php?threadid=722305)
Personalmente, alle volte ritengo prestazionalmente sconveniente l'utilizzo delle join.
Tieni conto che fa il prodotto cartesiano tra gli insiemi.
Quindi, supponiamo tu abbia:
3 righe dalla prima tabella
3 righe dalla seconda
2 righe dalla terza
2 righe dalla quarta
2 righe dalla quinta
2 righe dalla sesta
ti restituisce 144 record.