Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2018
    Messaggi
    9

    Copiare campi di un record in nuovo record

    Buongiorno, sono nuovo di questo forum ed avrei necessità dell'aiuto di qualcuno che sia più esperto di me in MYSQL. Il mio problema è il seguente:
    Ho un database con due tabelle: PAZIENTI e VISITE. Un paziente può essere sottoposto a più visite (ognuna delle quali rappresenta un record). Ci sono dei campi della tabella visite che devono essere ricopiati nell'inserimento della nuova visita, faccio un esempio:

    Viene inserito nella tabella VISITE il Paziente: Rossi Mario IdPaziente1

    IdVisita 1
    IdPaziente 1 (collegato alla tabella PAZIENTI)
    DataVisita
    Altezza (campo da ricopiare con i dati del precedente inserimento)
    Peso (campo da ricopiare con i dati del precedente inserimento)
    Colesterolo (campo da ricopiare con i dati del precedente inserimento)
    Trigliceridi (campo da ricopiare con i dati del precedente inserimento)
    Glicemia (campo da ricopiare con i dati del precedente inserimento)


    Successivamente vengono inseriti altri pazienti.....
    Quando il paziente Rossi IdPaziente1 si ripresenta a visita, avrei la necessita di ricopiare alcuni campi del record inserito per ultimo relativo al paziente Rossi

    IdVisita 5
    IdPaziente 1 (collegato alla tabella PAZIENTI)
    DataVisita
    Altezza (campo da ricopiare con i dati dell'ultimo inserimento relativo al paziente Rossi IdPaziente 1)
    Peso (campo da ricopiare con i dati dell'ultimo inserimento relativo al paziente Rossi IdPaziente 1)
    Colesterolo (campo da ricopiare con i dati dell'ultimo inserimento relativo al paziente Rossi IdPaziente 1)
    Trigliceridi (campo da ricopiare con i dati dell'ultimo inserimento relativo al paziente Rossi IdPaziente 1)
    Glicemia (campo da ricopiare con i dati dell'ultimo inserimento relativo al paziente Rossi IdPaziente 1)

    Come posso fare questo attraverso una query?? Spero di essere stato chiaro nella esposizione e vi ringrazio anticipatamente per l'aiuto che riuscirete a darmi.

    Allego immagini del tracciato record per maggiore chiarezza

    Immagini allegate Immagini allegate

  2. #2
    li ricopi mostrandoli a video mentre inserisci la nuova visita?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2018
    Messaggi
    9
    L'idea è quella di creare un pulsante in PHP che faccia questo lavoro. Ma al momento ero interessato a sapere come eseguire la query per fare ciò che mi interessa.

  4. #4
    è una semplice INSERT INTO...SELECT

    ese

    INSERT INTO visite (nome, cognome) VALUES (SELECT nome, cognome FROM clienti WHERE id=1)

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2018
    Messaggi
    9
    Grazie ancora per la tua risposta, io avevo provato con questa query, ma mi restituisce errore

    INSERT INTO visite (Altezza, Peso, Colesterolo, Trigliceridi, Glicemia);
    SELECT (Altezza, Peso, Colesterolo, Trigliceridi, Glicemia) FROM visite ORDER BY IdVisita DESC LIMIT 1

    Tieni presente che devo creare un nuovo record, ricopiando, nel nuovo record i campi che vedi sopra relativi al paziente ROSSI.
    Esempio:

    IdVisita: 1
    IdPaziente: 1 (collegato alla tabella PAZIENTI)
    DataVisita: 10/10/2018
    Altezza: 170
    Peso: 75
    Colesterolo: 220
    Trigliceridi: 145
    Glicemia:70
    ---------------------------
    Nel frattempo ci sono altri pazienti che vengono visitati....
    ---------------------------
    Quando si ripresenterà il paziente Codice 1 che corrisponde a Rossi per una nuova visita, dovrà avvenire questo:
    -----------------------------------
    IdVisita: 10
    IdPaziente: 1 (collegato alla tabella PAZIENTI)
    DataVisita: 31/10/2018
    Altezza: 170 ------------> dato ricopiato dal record n.1
    Peso: 75 ------------> dato ricopiato dal record n.1
    Colesterolo: 220 ------------> dato ricopiato dal record n.1
    Trigliceridi: 145 ------------> dato ricopiato dal record n.1
    Glicemia:70 ------------> dato ricopiato dal record n.1

    Non so se sono stato chiaro

  6. #6
    confronta la tua con la mia e troverai gli errori

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2018
    Messaggi
    9
    Ovviamente per provare la tua devo sostituire le voci corrette relative alla mia tabella, ho provato a farlo, ma mi restituisce un errore:

    INSERT INTO visite (Altezza, Peso, Colesterolo, Trigliceridi, Glicemia) VALUES (SELECT Altezza, Peso, Colesterolo, Trigliceridi, Glicemia FROM visite WHERE IdPaziente=1)
    ------------------------------------------

    Errore

    Query SQL: http://localhost/phpmyadmin/themes/dot.gif

    INSERT INTO visite (Altezza, Peso, Colesterolo, Trigliceridi, Glicemia) VALUES (SELECT Altezza, Peso, Colesterolo, Trigliceridi, Glicemia FROM visite WHERE IdPaziente=1)
    Messaggio di MySQL: http://localhost/phpmyadmin/themes/dot.gif
    #1064 - Errore di sintassi nella query SQL vicino a 'SELECT Altezza, Peso, Colesterolo, Trigliceridi, Glicemia FROM visite WHERE IdPa' linea 1

    Ti prego aiutami sto ammattendo.

  8. #8
    oops, ho sbagliato io a suggerire

    INSERT INTO visite (Altezza, Peso, Colesterolo, Trigliceridi, Glicemia) SELECT Altezza, Peso, Colesterolo, Trigliceridi, Glicemia FROM visite WHERE IdPaziente=1;

    cfr
    https://dev.mysql.com/doc/refman/8.0/en/insert-select.html

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2018
    Messaggi
    9
    INSERT INTO visite (Altezza, Peso, Colesterolo, Trigliceridi, Glicemia) SELECT Altezza, Peso, Colesterolo, Trigliceridi, Glicemia FROM visite WHERE IdPaziente=1;

    restituisce questo errore;

    Errore

    Query SQL: http://localhost/phpmyadmin/themes/dot.gif

    INSERT INTO visite (Altezza, Peso, Colesterolo, Trigliceridi, Glicemia) SELECT Altezza, Peso, Colesterolo, Trigliceridi, Glicemia FROM visite WHERE IdPaziente=1
    Messaggio di MySQL: http://localhost/phpmyadmin/themes/dot.gif
    #1364 - Field 'IdPaziente' doesn't have a default value





  10. #10
    Il messaggio dice che manca un campo, provvedi inserendo un default

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.