Расширенный MySql Query: обновить таблицу с информацией из другой таблицы

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

  •  05-07-2019
  •  | 
  •  

Вопрос

Я хотел бы обновить таблицу в mySql данными из другой таблицы.

У меня есть две таблицы "люди" и "бизнес". Таблица сотрудников связана с бизнес-таблицей столбцом с именем «business_id».

Необходимая структура таблицы, первичный ключ помечен звездочкой (Таблица: столбцы): Люди: * business_id, * sort_order, email Бизнес: * business_id, электронная почта

Я хотел бы обновить столбец электронной почты бизнес-таблицы, добавив в него письмо из таблицы сотрудников, примерно так (я знаю, что здесь что-то не хватает):

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

Имеет ли это смысл? Возможно ли это?

Это было полезно?

Решение

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

Другие советы

Обратите внимание: если sort_order является INT, не используйте '1' - используйте 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 = '';

Попробуйте, у меня все работает нормально.

Update table a, table b
Set a.importantField = b.importantField,
a.importantField2 = b.importantField2
where a.matchedfield = b.matchedfield;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top