CONCAT_WS e UPDATE incorciato di due tabella in MYSQL

Appunti -> Sql

tipiconSQLA volte si ha la necessità di aggiornare i dati contenuti in una tabella rispetto ad un altra. In php la procedura è abbastanza elementare, ma richiede una serie di operazioni che possono essere bypassate con una query SQL di UPDATER che utlizza il LEFT JOIN

UPDATE utenti_fan AS uf
LEFT JOIN utenti as u
ON uf.utente = u.id_utenti
SET uf.nominativo = CONCAT_WS(" ", u.nome, u.cognome)


Questa query ha la funzione di prelevare i campi nome e cognome da una tabelle e inserirli nel campo nominativo dell'altra. Ovviamente per evitare un casino di proporizione bibliche è necessario che ci sia un riferimento tra una tabella ed un altra, che tipicamente è un id che lega i due record su tabelle diverse, nel nostro caso il campo utente sulla prima tabella e il campo id utente sulla seconda.

Si è fatto inoltre uso dell'istruzione CONCAT_WS, sconsigliata per questioni di prestazioni dall'ottimizzatore del mio ufficio, ma in alcuni casi essenziale: da ussare quindi con cautela. L'istruzione non fa altro che unire (concatenare) i campi elencati tra le parentesi conte utilizzando come stringa di separazione i caratteri inseriti tra virgolette al primo valore che viene passato.