Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    copiare dati tra tabelle

    ...leggendo le discussioni precedenti non ho capito se questa cosa si può fare.
    premetto che il database come struttura fa pietà.

    ho due tabelle, clienti e dati_cliente .

    clienti :

    serial,nominativo,categoria

    dati_cliente :

    serial,id_cliente,categoria

    il rapporto è 1 a 1 e dovrei copiare tutti i valori di categoria dalla seconda tabella e metterli nel campo analogo nella prima, naturalmente rispettando il relativo cliente.
    i dati nella prima tabella sono molti di più.

    il problema per ora è risolto utilizzando un ciclo while ed un controllo riga per riga della categoria di ogni cliente (e conseguente aggiornamento), ma in questo modo la pagina impiega più di 10 secondi ad essere caricata (con gli indici). esiste una query 'secca' per fare il trasferimento? (INSERT...SELECT non riesco a farla funzionare).

  2. #2
    uhm, se ho capito bene ...

    UPDATE clienti, dati_cliente SET clienti.categoria = dati_clienti
    WHERE clienti.serial = dati_clienti.id_cliente

  3. #3
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    ...

    si hai capito benissimo, però mi dà errore di sintassi...

    la tua query l'ho scritta in questo modo:

    UPDATE clienti,dati_cliente SET clienti.categoria = dati_clienti.categoria WHERE clienti.serial = dati_clienti.id_cliente

    (mi sa avevi dimenticato di specificare dati_clienti.categoria)

    grazie mille per l'aiuto...

    help...

  4. #4
    la tabella si chiama dati_cliente, non dati_clienti
    Hey Barney, fantastico, hai portato un barile di birra!! Già, dove posso riempirlo?
    http://www.ibolli.it

  5. #5
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    ...

    hai ragione! in effetti me ne ero accorta comunque grazie mille!

    credo di aver capito... dipende dalla versione di mysql. ecco un estratto preso da http://dev.mysql.com/doc/mysql/en/UPDATE.html :

    ...

    Starting with MySQL 4.0.4, you can also perform UPDATE operations that cover multiple tables:
    UPDATE items,month SET items.price=month.price
    WHERE items.id=month.id;

    ...

    è il mio caso preciso sputato... non so se ridere o piangere visto che non posso aggiornare il mysql nel server aziendale.

    se ci fossero soluzioni alternative son sempre in ascolto! grazie ancora a tutti

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.