ho già fatto qualche ricerca ma non trovo soluzione.
devo inserire in un record il valore presente nel record di un'altra tabella.
bisogna per forza fare prima select e poi udpate o esiste un sistema più elegante ?
grazie.
ho già fatto qualche ricerca ma non trovo soluzione.
devo inserire in un record il valore presente nel record di un'altra tabella.
bisogna per forza fare prima select e poi udpate o esiste un sistema più elegante ?
grazie.
Errare humanum est, perseverare ovest
update tab_origine,tab_destinazione
set tab_destinazione.campo1 = tab_origine.campo1,
tab_destinazione.campo2 = tab_origine.campo2
where tab_origine.id = tab_destinazione.id
ok, grazie.
e se volessi farlo durante un insert ? ossia, quando creo un record vorrei inserire in un campo il valore contenuto nel campo di un'altra tabella.
Errare humanum est, perseverare ovest
fai una insert into select
http://mysql.com/doc/refman/4.1/en/insert-select.html
azz. non lo avevo mai visto.
però questo finchè mi limito a copiare i dati dall'altra tabelle, se nell'insert dovessi contemporaneamente inserire anche dei valori presenti in alcune variabili?
la query è questa:e poi dovrei aggiungere al campo testo_iscrizione_corso il valore contenuto nell'omonimo campo della tabella corsi_messaggi :master:codice:$query = " INSERT INTO corsi ( nome_corso, id_categoria_corso ) VALUES ( '".$nuovo_elemento."', '".$id_categoria_corso."' ) ";
Errare humanum est, perseverare ovest
ora pretendi troppo.Originariamente inviato da carlo2002
azz. non lo avevo mai visto.
però questo finchè mi limito a copiare i dati dall'altra tabelle, se nell'insert dovessi contemporaneamente inserire anche dei valori presenti in alcune variabili?
la query è questa:e poi dovrei aggiungere al campo testo_iscrizione_corso il valore contenuto nell'omonimo campo della tabella corsi_messaggi :master:codice:$query = " INSERT INTO corsi ( nome_corso, id_categoria_corso ) VALUES ( '".$nuovo_elemento."', '".$id_categoria_corso."' ) ";![]()
aspetta piero.mac per vedere se si può fare con un'unica query ma ne dubito.![]()
dubito anchio. Grazie
![]()
Errare humanum est, perseverare ovest
Si puo' fare quasi tutto. Ma prima di fare bisogna capire cosa, e sinceramente dagli esempi non ho capito a sufficienza per dare una risposta.
come sono le tabelle e quali i campi da copiare e quali da aggiornare?
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Allora, ho le seguenti tabelle:
corsi
-------------------
id_corso
id_categoria
nome_corso
testo_iscrizione_corso
et....
corsi_messaggi
------------------
id_messaggio_corso
chiave_messaggio_corso
testo_messaggio_corso
et...
in corsi_messaggi tengo memorizzati dei testi di default come gli avvertimenti se le iscrizioni sono aperte o chiuse, le email automatiche di risposta et.
ogni volta che inserisco un nuovo corso vorrei inserire anche il messaggio di default, in questo caso in testo_iscrizione_corso, corrispondente ad una specificata chiave_messaggio_corso. preciso che non è una ridondanza in quanto per ogni corso è richiesta l'eventuale personalizzazione dei messaggi
La query che utilizzo per inserire il nuovo corso, come già indicato, è:Appurato che si può fare con due query, mi rimaneva la curiosità se si poteva risolvere con una sola.codice:$query = " INSERT INTO corsi ( nome_corso, id_categoria_corso ) VALUES ( '".$nuovo_elemento."', '".$id_categoria_corso."' ) ";
Errare humanum est, perseverare ovest
puoi farlo con una sola query se sai pescare l'id relativo nella tabella in cui vai a copiare.Originariamente inviato da carlo2002
Appurato che si può fare con due query, mi rimaneva la curiosità se si poteva risolvere con una sola.
Non capisco quale e' il campo di relazione tra le due tabelle.codice:INSERT INTO corsi ( nome_corso, id_categoria_corso, campo1, campo2, campo3 SELECT '$nuovo_elemento', '$id_categoria_corso', campo1, campo2, campo3 from corsi_messaggi where chiave_messaggio ??? .... ma qui devi sapere tu quale id devi pescare.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.