Consulta de MySql avanzada: actualizar la tabla con información de otra tabla
-
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?
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;