Consulta de MySql avanzada: actualizar la tabla con información de otra tabla

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

  •  05-07-2019
  •  | 
  •  

Pregunta

Me gustaría actualizar una tabla en mySql con datos de otra tabla.

Tengo dos tablas " personas " y "negocios". La tabla de personas está vinculada a la tabla de negocios mediante una columna llamada " business_id " ;.

La estructura de tabla necesaria, la clave principal está marcada (Tabla: columnas): Personas: * business_id, * sort_order, email Empresa: * business_id, correo electrónico

Me gustaría actualizar la columna de correo electrónico de la tabla de negocios con el correo electrónico de la tabla de personas, algo como esto (sé que me estoy perdiendo algo aquí):

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

¿Tiene sentido? ¿Es posible?

¿Fue útil?

Solución

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

Otros consejos

Tenga en cuenta que si sort_order es un INT, entonces no use '1' - use 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 = '';

Prueba esto, funciona bien para mí.

Update table a, table b
Set a.importantField = b.importantField,
a.importantField2 = b.importantField2
where a.matchedfield = b.matchedfield;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top