Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Query di aggiornamento dati automatico tra due tabelle di uno stesso database

    Salve,
    ho un database con all'interno due tabelle:
    Prodotto - Azienda Produttrice

    la prima tabella contiene un elenco di prodotti (prodotto 1, prodotto 2, prodotto 3, etc..)
    per ogni prodotto ci sono queste informazioni:
    nome, tipologia, costo, azienda produttrice, sito internet, telefono assistenza

    la seconda tabella contiene un elenco di aziende (azienda 1, azienda 2, azienda 3, etc..)
    per ogni azienda ci sono queste informazioni:
    azienda, settore, sito internet, telefono assistenza

    io vorrei creare una query che su ogni prodotto della prima tabella inserisca/modifichi/aggiorni i campi "sito internet" e "telefono assistenza" prendendoli dalla seconda tabella...
    ...esempio

    prodotto 1 - azienda 1 ==> sito 1 - telefono 1
    prodotto 2 - azienda 5 ==> sito 5 - telefono 5
    prodotto 3 - azienda 4 ==> sito 4 - telefono 4

    praticamente in ogni prodotto i campi sito internet e telefono assistenza devono essere quelli dell' azienda produttrice di riferimento.
    Mi serve perchè spesso delle aziende cambiamo sito e telefono ed ogni volta dobbiamo fare "a mano" la stessa modifica su tutti i prodotti di quell'azienda.

    Qualcuno può aiutarmi?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da ferithon Visualizza il messaggio
    ...... Qualcuno può aiutarmi? .....
    Il miglior aiuto è quello di non aiutarti.
    ( ricordo una canzone dei tempi gloriosi che diceva " .... forse lasciarlo sulle scale è un modo di salvarlo .... " )

    Hai dei dati Rindondanti ( significa lo stesso dato scritto su 2 tabelle diverse )
    pertanto hai il problema di tenerli allineati e vorresti farlo con copia i dati da 1 tabella nell' sull'altra.
    e se invece le modifiche aggiornate vengono fatte sull'altra ???


    Pensaci su bene, la tua soluzione non è quella di aggiornare i dati,
    bensi quella di eliminare dalla tabella "prodotti" i campi "sito internet" e "telefono assistenza"
    che non hanno nulla a che fare con prodotti.

    Facci sapere eventualmente faremo una query di aggiornamento,


    .

  3. #3
    Quote Originariamente inviata da nman Visualizza il messaggio
    Il miglior aiuto è quello di non aiutarti.

    Hai dei dati Rindondanti ( significa lo stesso dato scritto su 2 tabelle diverse )
    pertanto hai il problema di tenerli allineati e vorresti farlo con copia i dati da 1 tabella nell' sull'altra.
    e se invece le modifiche aggiornate vengono fatte sull'altra ???


    Pensaci su bene, la tua soluzione non è quella di aggiornare i dati,
    bensi quella di eliminare dalla tabella "prodotti" i campi "sito internet" e "telefono assistenza"
    che non hanno nulla a che fare con prodotti.

    Facci sapere eventualmente faremo una query di aggiornamento,


    .
    ci avevo già pensato...purtroppo sono costretto a lasciare tutto così perchè il programma che usiamo prevede già questi campi...in più in alcune stampe ed in alcune query pre-impostate sui prodotti, quei campi risultano evidenti...e quindi se non aggiornati...sbagliati ;-)

    in più la stessa procedura la vorrei usare anche sulle tabelle clienti/azienda di riferimento...
    in questo caso quei campi relativi l'azienda (sito, indirizzo, telefono) presenti sulla sceda del cliente mi servono per contattare il cliente su recapiti "non personali" ma "aziendali"...


    ...insomma sia la tabella clienti che quella prodotti dipendono (indirettamente e parzialmente) da quella azienda.

    Io avevo chiesto aiuto solo per quella prodotti perchè, mentre i prodotti che compriamo posso cambiare azienda/marca facilemente...i clienti difficilmente si licenziano e/o cambiano azienda, quindi nel socondo caso l'aggiornamento è sporadico e facilmente realizzabile "a mano"...

    ...resto in attesa...

    e grazie mille per l'aiuto

  4. #4
    p.s.
    quasi dimenticavo...
    in questo momento le modifiche vengono fatte a mano, in parte sul CRM stesso, in parte tramite phpmyadmin:
    praticamente esporto la tabella prodotti e quella aziende in excel...
    ...faccio le modifiche utilizzando le funzioni "indice" e "confronta"...
    ...esporto tutto da excel ad access...
    ...esporto ancora da access a csv...
    ...importo il tutto su phpmyadmin

    questo sitema però, oltre che laborioso, è rischioso in quanto in tutti questi copia, incolla, importa, esporta, rischio di fare qualche errore compromettendo il database...
    ...l'utilizzo di uno script/query renderebbe il tutto sicuro e facile

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    p o meno la query è questa ( poi dipende dal DB su cui deve girare )
    codice:
    UPDATE 
    Prodotto INNER JOIN [Azienda Produttrice] 
    ON 
    Prodotto.[azienda produttrice] = [Azienda Produttrice].azienda 
    SET 
    Prodotto.[sito internet] = [Azienda Produttrice]![sito internet], 
    Prodotto.[telefono asistenza] = [Azienda Produttrice]![telefono assistenza]
    WHERE 
    (
    (Prodotto.[sito internet]<>[Azienda Produttrice]![sito internet]) 
    OR 
    (Prodotto.[telefono asistenza]<>[Azienda Produttrice]![telefono assistenza])
    )
    ;
    Provala bene anche con i valori Null nella 2 tabelle

  6. #6
    Quote Originariamente inviata da nman Visualizza il messaggio
    p o meno la query è questa ( poi dipende dal DB su cui deve girare )
    codice:
    UPDATE 
    Prodotto INNER JOIN [Azienda Produttrice] 
    ON 
    Prodotto.[azienda produttrice] = [Azienda Produttrice].azienda 
    SET 
    Prodotto.[sito internet] = [Azienda Produttrice]![sito internet], 
    Prodotto.[telefono asistenza] = [Azienda Produttrice]![telefono assistenza]
    WHERE 
    (
    (Prodotto.[sito internet]<>[Azienda Produttrice]![sito internet]) 
    OR 
    (Prodotto.[telefono asistenza]<>[Azienda Produttrice]![telefono assistenza])
    )
    ;
    Provala bene anche con i valori Null nella 2 tabelle
    Intanto grazie per la risposta...questa query la posso eseguire direttamente da phpmyadmin come le altre o è particolare e va eseguita in una maniera apposita???

    Inoltre potresti cortesemente spiegarmene i passaggi così da capirne il meccanismo e modificarlo mano mano che effettuo le prove senza disturbarti di continuo???
    grazie ancora

  7. #7
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da ferithon Visualizza il messaggio
    ...questa query la posso eseguire direttamente da phpmyadmin come le altre o è particolare e va eseguita in una maniera apposita???
    Mai usato php !!! ma se puoi eseguire altre query allora puoi eseguire anche quella,
    UPDATE significa che modifica dei dati quindi in funzione del tuo DB, delle autorizzazioni utente ..........


    Quote Originariamente inviata da ferithon Visualizza il messaggio
    Inoltre potresti cortesemente spiegarmene i passaggi ....
    Ho letto sopra che usi anche Access,
    copiati quel testo fra le query di access e te la vedi disegnata e puoi giocarci,
    ( naturalmente devi costruirti 2 tabelline muletto )


    .

  8. #8
    Ho letto sopra che usi anche Access,
    copiati quel testo fra le query di access e te la vedi disegnata e puoi giocarci,
    ( naturalmente devi costruirti 2 tabelline muletto )
    .
    Perfetto...farò così...non ci avevo pensato...ottima idea...

    Penso di aver capito il meccanismo della query:
    UPDATE
    Prodotto INNER JOIN [Azienda Produttrice]
    \\crea un collegamento "momentaneo" tra la tabella prodotto e quella azienda

    ON
    Prodotto.[azienda produttrice] = [Azienda Produttrice].azienda
    \\attiva la query nella tabella prodotto tra gli elementi che hanno il campo azienda produttrice = al campo azienda all'interno della tabella azienda

    SET
    Prodotto.[sito internet] = [Azienda Produttrice]![sito internet],
    Prodotto.[telefono asistenza] = [Azienda Produttrice]![telefono assistenza]
    \\modifica i due campi indicati nella tabella prodotto con il contenuto dei campi indicati nella tabella azienda

    WHERE
    (
    (Prodotto.[sito internet]<>[Azienda Produttrice]![sito internet])
    OR
    (Prodotto.[telefono asistenza]<>[Azienda Produttrice]![telefono assistenza])
    \\effettua queste modifiche solo se i campi di cui sopra sono diversi altrimenti salta e va avantis
    )
    ;

    spero di aver capito bene il meccanismo...mi dai conferma?

    grazie ancora per l'aiuto ;-)

  9. #9
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da ferithon Visualizza il messaggio
    .... spero di aver capito bene il meccanismo...mi dai conferma?
    esatto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.