- Home
- Categorie
- Coding e Sistemistica
- Coding
- Copia tabella su altra tabella
-
ora provo...a costo di stare qui fino a domani mattina!!!
-
allora non ci sono errori....ma cio che si trova su weborders_users viene riportaro correttamente come prima, mentre ad esempio l'indirizzo che si trova in weborders_comprofiler no...l'unica chiamata che si trova qui (idCliente,Nome,NomeUtente,Email,Password,Indirizzo)
annullo tutto okok.....ho sbagliato io sembra ok....ora vado avanti con la personalizzazione
-
TUTTO PERFETTO!!!
forse una cosa che si potrebbe fare è l'aggiornamento dei dati...qualora l'utente (tramita la modifica del profilo in Joomla) modifica i suoi dati
-
ottimo...per l'update credo che si possa fare...
-
ok...prendiamoci la pausa, la notte porta consiglio!!...ti sono veramente riconoscente, è tutto perfetto!!
-
Tutto Ok, questa è la query definitiva provata e funzionante:
$query = "INSERT IGNORE INTO weborders_clienti (idCliente,Nome,Cognome,NomeUtente,Password,PI_CF,Telefono,Email,Indirizzo,NCivico,Cap,Citta,Provincia,Societa,Consegna,Pagamento,Fattura,Attivo) SELECT u.id,c.firstname,c.lastname,u.username,u.password,c.cb_picf,c.cb_telefono,u.email,c.cb_indirizzo,c.cb_numerocivico,c.cb_cap,c.cb_citta,c.cb_provincia,c.cb_societa,c.cb_consegna,c.cb_pagamenti,c.cb_fattura,c.confirmed FROM weborders_users AS u INNER JOIN weborders_comprofiler AS c ON u.id = c.id WHERE u.id!=' '";
...se abbiamo tempo e soluzione per fare l'UPDATE come dicevamo diventerebbe perfetta!!
Una cosa volevo chidere: la lettera u e la lettera **c **come sono saltate fuori?
-
Sono venute fuori da questo pezzo qui:
FROM weborders_users AS u INNER JOIN weborders_comprofiler AS c
AS significa ALIAS...ossia scrivendo weborder_users AS u io assegno un nome alternativo (in questo caso u) a weborder_users. Così facendo posso scrivere in modo più comodo e leggibile la query.
Avrei anche potuto non usare l'alias, ma in tal caso mi sarei ritrovato a scrivere:
$query = "INSERT IGNORE INTO weborders_clienti (idCliente,Nome,Cognome,NomeUtente,Password,PI_CF, Telefono,Email,Indirizzo,NCivico,Cap,Citta,Provinc ia,Societa,Consegna,Pagamento,Fattura,Attivo) SELECT weborder_users.id,weborder_comprofiler.firstname,weborder_comprofiler.lastname,weborder_users.username,weborder_users.password.....
capisci che è scomodo e poco chiaro
-
direi che con MSYQL ci giochi a PALLONE!
...mi basterebbe 1/4 dei tuoi PALLEGGI!!!
-
Avrei trovato qualcosa quì
http://guide.dada.net/database/interventi/2001/05/45041.shtml
...ma non riesco!
sto facendo una prova con questo...ma ovviamente non funziona!
$query = "UPDATE weborders_clienti SET Email = SELECT email FROM weborders_users WHERE id!=' '";
-
$query = "UPDATE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ')";
così è già più corretta ma devi anche dirgli dove fare l'update però
se vuoi fare l'update su tutte le righe usa REPLACE
-
infatti l'errore che mi torna è questo:
UPDATE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ')Subquery returns more than 1 row
stesso errore con REPLACE
REPLACE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ')Subquery returns more than 1 row
-
perchè devi aggiungere un WHERE esterno:
REPLACE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ') WHERE id != ' '
però ti serve anche un'altra condizione di corrispondenza affinchè la query sia eseguita con criterio e non sovrascriva valori sballati
-
okm ora provo..infatti stavo provando con questa:
$query = "UPDATE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE email) WHERE Email";
..non mi dà errore ma nemmeno la modifica!!
ora provo la tua
-
mi da questo errore:
REPLACE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ') WHERE id !=' 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id !=' '' at line 1
-
scusa...avevo sbagliato a copiare e incollare!
Non volevo scrivere:
REPLACE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ') WHERE id !=' '
ma
UPDATE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ') WHERE id !=' '
però devi aggiungere un AND e un'altra condizione perchè funzioni correttamente
-
sto provando questa:
$query = "UPDATE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ') WHERE Email AND email";
...non mi dà errore ma nemmeno la modifica!
-
cosa significa: WHERE Email AND email" ??
-
sai quando una cosa non si studia dalle basi, e quindi sapere cosa si fà, questo è il risultato!
cerco di mettercela tutta per capire...ma forse sto iniziando con una auto di grossa cilidrata!
-
beh te la stai cavando bene mi pare!
cmq la mia domanda di prima era per cercare di capire cosa volessi fare con quella istruzione...forse è solo scritta male...
-
...in realtà cercavo di mettere in pratica ciò che avevo trovato a questo indirizzo:
http://guide.dada.net/database/interventi/2001/05/45041.shtml
Come per la insert vanno rispettati tutti i constraint e le dimensioni e i tipi dei campi. Quindi non e' possibile modificare un numero e sostituirlo con una stringa, annullare il valore di una colonna not null ecc.
E' possibile modificare uno o piu' record andando a prendere il valore da un'altra tabella o dalla stessa, ad esempio supponiamo di voler spostare MARIO BIANCHI nella stessa sede di PAOLO VERDI.
Potremmo andare a leggere, con una select, dalla tabella impiegati la sede del sig. VERDI e successivamente, con una update modificare la sede del sig. BIANCHI, oppure fare tutto con una sola istruzione:UPDATE impiegati
set sede = (SELECT sede FROM impiegati WHERE nome = 'PAOLO' AND cognome='VERDI')
WHERE nome = 'MARIO' AND cognome ='BIANCHI';ma non sembra che ci stia riuscendo!