Query MySql avanzata: aggiorna la tabella con le informazioni di un'altra tabella
-
05-07-2019 - |
Domanda
Vorrei aggiornare una tabella in mySql con i dati di un'altra tabella.
Ho due tabelle "persone" e "affari". La tabella persone è collegata alla tabella aziendale da una colonna denominata " business_id " ;.
La struttura della tabella necessaria, la chiave primaria è contrassegnata da una stella (Tabella: colonne): Persone: * business_id, * sort_order, email Affari: * business_id, email
Vorrei aggiornare la colonna e-mail della tabella aziendale con l'e-mail dalla tabella persone, qualcosa del genere (so che mi manca qualcosa qui):
UPDATE business b SET email = (SELECT email from People p where p.business_id = b.business_id AND sort_order = '1') WHERE b.email = '';
Ha senso? È possibile?
Soluzione
UPDATE business b, people p
SET b.email = p.email
WHERE b.business_id = p.business_id
AND p.sort_order = '1'
AND b.email = ''
Altri suggerimenti
Nota, se sort_order è un INT, allora non usare '1' - usa 1:
UPDATE business b
JOIN People p
ON p.business_id = b.business_id
AND p.sort_order = '1'
SET b.email = p.email
WHERE b.email = '';
Prova questo, funziona bene per me.
Update table a, table b
Set a.importantField = b.importantField,
a.importantField2 = b.importantField2
where a.matchedfield = b.matchedfield;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow