2009-07-29 10 views
33

Vorrei aggiornare una tabella in mySql con i dati di un'altra tabella.Query MySql avanzata: tabella di aggiornamento con informazioni da un'altra tabella

Ho due tabelle "persone" e "affari". La tabella delle persone è collegata alla tabella del lavoro da una colonna denominata "id_corrente".

La struttura della tabella necessaria, chiave primaria è preferiti (Tabella: le colonne): Persone: * business_id, * sort_order, email Affari: * business_id, e-mail

vorrei aggiornare la colonna email tabella di affari 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?

risposta

86
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 = '' 
+0

molto bello, ma da parte mia ci vogliono fino a 3 secondi – NineCattoRules

12

nota, se sort_order è un INT, allora non usare '1' - usare 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 = ''; 
Problemi correlati