Back to top

Autore Topic: una query complicata! qualcuno mi aiuta?  (Letto 3543 volte)

Offline mdgb

  • Nuovo arrivato
  • *
  • Post: 41
    • Mostra profilo
una query complicata! qualcuno mi aiuta?
« il: 05 Set 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

Offline mdgb

  • Nuovo arrivato
  • *
  • Post: 41
    • Mostra profilo
Re: una query complicata! qualcuno mi aiuta?
« Risposta #1 il: 05 Set 2007, 15:12:12 »
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.

Offline bibobibo

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
  • Coltiva Linux ... tanto Windows si pianta da solo!
    • Mostra profilo
Re: una query complicata! qualcuno mi aiuta?
« Risposta #2 il: 05 Set 2007, 15:18:57 »
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?

Offline dlando

  • Appassionato
  • ***
  • Post: 397
    • Mostra profilo
Re: una query complicata! qualcuno mi aiuta?
« Risposta #3 il: 05 Set 2007, 16:25:46 »
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

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.
Non so dei vostri buoni propositi perche' non mi riguardano.
Esiste una sconfitta pari al venire corroso che non ho scelto io ma e' dell'epoca in cui vivo.

 



Web Design Bolzano Kreatif