SQL обновляет один столбец из другого столбца в другой таблице

До этого я читал разные сообщения. но ни один из них не работал у меня.

Как следует из названия, я пытаюсь обновить один столбец из столбца в другой таблице. Я не помню, чтобы у меня были проблемы с этим раньше ..

1. Таблица: user_settings.contact_id, я хочу обновить с помощью contacts.id , где (user_settings.account_id == contacts_account_id)

2. Ранее Контакты были связаны с учетными записями пользователей через account_id. Однако теперь мы хотим связать контакт с user_settings через contacts.id

Ниже приведены несколько примеров того, что я пробовал, хотя ни один из них не работал. Меня бы заинтересовал А. ) Почему они не работают и Б.) Что мне делать вместо этого.

Пример A:

UPDATE user_settings
SET user_settings.contact_id = contacts.id 
FROM user_settings 
INNER JOIN contacts ON user_settings.account_id = contacts.account_id

Пример B:

UPDATE (SELECT A.contact_id id1, B.id id2
  FROM user_settings A, contacts B
  WHERE user_settings.account_id = contacts.account_id)
SET id1 = id2

Пример C:

UPDATE user_settings
SET user_settings.contact_id = (SELECT id
  FROM contacts
  WHERE (user_settings.account_id = contacts.account_id)
WHERE EXISTS ( user_settings.account_id = contacts.account_id )

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

19
задан linuxbuild 5 February 2011 в 11:27
поделиться