2009-07-29 17 views
33

Chciałbym zaktualizować tabelę w mySql danymi z innej tabeli.Zaawansowane zapytanie MySql: Aktualizacja tabeli z informacjami z innej tabeli

Mam dwie tabele "ludzie" i "biznes". Tabela osób jest połączona z tabelą biznesową za pomocą kolumny o nazwie "business_id".

niezbędną strukturę tabeli, klucz podstawowy jest oznaczony gwiazdką (Tabela: Kolumny): osoby: * business_id * porządek_sortowania, email działalności: * business_id, email

Chciałbym zaktualizować kolumny email stołowego biznesu z e-mailem z tabeli osób, coś takiego (wiem, że tu czegoś brakuje):

UPDATE business b SET email = (SELECT email from People p where p.business_id = b.business_id AND sort_order = '1') WHERE b.email = ''; 

Czy to ma sens? Czy to możliwe?

Odpowiedz

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

bardzo ładne, ale z mojej strony to trwa do 3 sekund – NineCattoRules

12

Uwaga, jeśli porządek_sortowania jest INT, a następnie nie używać '1' - używać 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 = ''; 
Powiązane problemy