Requête MySql avancée: table de mise à jour avec les informations d'une autre table

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

  •  05-07-2019
  •  | 
  •  

Question

Je souhaite mettre à jour une table dans mySql avec les données d'une autre table.

J'ai deux tables "Personnes". et "entreprise". La table des personnes est liée à la table des entreprises par une colonne intitulée "id_entreprise".

La structure de table nécessaire, la clé primaire est précédée (Table: colonnes): Personnes: * business_id, * sort_order, email Entreprise: * business_id, email

Je souhaite mettre à jour la colonne e-mail de la table métier avec celle de la table des personnes, quelque chose comme ceci (je sais qu'il me manque quelque chose ici):

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

Est-ce que cela a du sens? Est-ce possible?

Était-ce utile?

La solution

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 = ''

Autres conseils

Notez que si sort_order est un INT, n'utilisez pas '1' - utilisez 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 = '';

Essayez ceci, ça marche très bien pour moi.

Update table a, table b
Set a.importantField = b.importantField,
a.importantField2 = b.importantField2
where a.matchedfield = b.matchedfield;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top