Query MySql avanzata: aggiorna la tabella con le informazioni di un'altra tabella

StackOverflow https://stackoverflow.com/questions/1202075

  •  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?

È stato utile?

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
scroll top