Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228

    [mySQL] Copiare da tabella1 a tabella2

    Salve a tutti, in una pagina PHP ottengo una variabile che se definita mi copia dati da una tabella all'altra

    Ho quindi 2 tabelle

    tabella1: t1_id | t1_descrizione | t1_anno
    tabella2: t2_id | t2_descrizione | t2_anno | t2_archivio

    La select che ho fatto inizialmente è questa:
    codice:
    INSERT INTO tabella2 (t2_descrizione, t2_anno, t2_archivio) VALUES ((SELECT t1_descrizione, t1_anno FROM tabella1 WHERE t1_anno='$variabile'),'A')
    La query sopra mi dice che il numero dei campi non corrisponde, anche se effettivamente non è così.

    Questa invece funziona, ma come vedete manca il valore di t2_archivio
    codice:
    INSERT INTO tabella2 (t2_descrizione, t2_anno) SELECT t1_descrizione, t1_anno FROM tabella1 WHERE t1_anno='$variabile'
    Ho pensato ad un UPDATE successivo, ma se il record inserito è uno risolverei con un semplice mysql_insert_id(), il problema è che i record sono molti e quindi non so come risolvere (sarebbe meglio direttamente in mySQL così la query resta unica)

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221

    Re: [mySQL] Copiare da tabella1 a tabella2

    Originariamente inviato da Scream
    codice:
    INSERT INTO tabella2 (t2_descrizione, t2_anno, t2_archivio) VALUES ((SELECT t1_descrizione, t1_anno FROM tabella1 WHERE t1_anno='$variabile'),'A')
    La query sopra mi dice che il numero dei campi non corrisponde, anche se effettivamente non è così.
    come non è così? certo che è così, tu vuoi inserire in 3 campi il risultato di una select che estrae 2 campi 3!=2 quindi il numero dei campi non corrisponde.

    codice:
    INSERT INTO tabella2 (t2_descrizione, t2_anno) VALUES ((SELECT t1_descrizione, t1_anno FROM tabella1 WHERE t1_anno='$variabile'),'A')
    così dovrebbe funzionare.

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    mmmm non capisco
    codice:
    INSERT INTO tabella2 (t2_descrizione, t2_anno, t2_archivio) VALUES ((SELECT t1_descrizione, t1_anno FROM tabella1 WHERE t1_anno='$variabile'),'A')
    In questa query seleziono i campi t1_descrizione, t1_anno e aggiungo il valore 'A'... sono 3 campi

    Mentre in quella che mi hai suggerito tu, devo compilare solo i campi t2_descrizione e t2_anno nella tabella 2, e poi aggiungendo il valore 'A' in un campo che non specifico ?

  4. #4
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    http://dev.mysql.com/doc/refman/5.6/...rt-select.html
    codice:
    INSERT INTO tabella2 (t2_descrizione, t2_anno, t2_archivio)
    SELECT t1_descrizione, t1_anno,'A' FROM tabella1 WHERE t1_anno='$variabile'

  5. #5
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    semplicemente FANTASTICO!

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