Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    Copiare alcuni campi su una nuova tabella

    Dovrei copiare alcuni dati fra tabelle diverse e disomogenee. C'è un comando che mi permetta di dire di copiare il valore di alcuni campi su un'altra tabella specificando i nuovi campi e mettere anche una WHERE per non copiare tutta la tabella sorgente ma solo le istanze che mi interessano? In pratica prima di eliminare alcune istanze dalla tabella1 mi devo salvare su una nuova tabella2 alcuni dati di alcune istanze.

    Oppure devo ricorrere a PHP e fare una SELECT delle istanze da copiare e poi delle INSERT INTO inserite in un ciclo while per ogni istanza che vede verificata la condizione? E' sconsigliato fare le query in maniera ciclica, ma se non esistono costrutti in mysql sono costretto a fare così.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    update tabella_origine,tabella_destinazione
    set tabella_destinazione.campo1 = tabella_origine.campo1,
    tabella_destinazione.campo2 = tabella_origine.campo2,
    .....
    where tabella_origine.id = tabella_destinazione.id

    nel where specifichi le clausole che vuoi per copiare i record che ti interessano

  3. #3
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da nicola75ss
    update tabella_origine,tabella_destinazione
    set tabella_destinazione.campo1 = tabella_origine.campo1,
    tabella_destinazione.campo2 = tabella_origine.campo2,
    .....
    where tabella_origine.id = tabella_destinazione.id

    nel where specifichi le clausole che vuoi per copiare i record che ti interessano
    Grazie!!! Provo subito!!!! Grazie mille ancora, l'idea delle insert in un for faceva proprio cag....

  4. #4
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da nicola75ss
    update tabella_origine,tabella_destinazione
    set tabella_destinazione.campo1 = tabella_origine.campo1,
    tabella_destinazione.campo2 = tabella_origine.campo2,
    .....
    where tabella_origine.id = tabella_destinazione.id

    nel where specifichi le clausole che vuoi per copiare i record che ti interessano
    Solo che questa mi fa un aggiornamento, io devo aggiungere fisicamente dei record sulla tabella destinazione e non modificare i record presenti in base. Ho provato la query ma non mi aggiunge sulla seconda tabella i campi che seleziono nella tabella origina con la clausola WHERE della query, sbaglio io?

  5. #5

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da piero.mac
    usa INSERT .... SELECT

    http://dev.mysql.com/doc/refman/5.0/...rt-select.html
    Grazie mille! Questa fa proprio per me, mai sentito questo costrutto, è SQL standard o un costrutto proprietario di MySql? Giusto per curiosità personale.

  7. #7
    Originariamente inviato da james
    Grazie mille! Questa fa proprio per me, mai sentito questo costrutto, è SQL standard o un costrutto proprietario di MySql? Giusto per curiosità personale.
    e' SQL99 standard.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.