Как обновить записи из нескольких таблиц, разделяющих одно поле одним запросом? - PullRequest
1 голос
/ 17 июня 2011

У меня есть база данных для форумоподобного сайта.Он имеет таблицу «пользователи», которая связана с другими таблицами («сообщения», «голоса» и т. Д.) С внешними ключами.

Я реализую функцию объединения двух пользователей в одного из них, которая требует перекомпоновки всех таблиц.Поэтому я хотел бы построить запрос следующим образом (в этом случае user_id = 1 - это идентификатор нетронутого пользователя, а user_id = 2 - это идентификатор пользователя, который объединяется с первым):

UPDATE posts, votes ... SET user_id=1 WHERE user_id=2

Я, естественно, получаю сообщение об ошибке: «Столбец 'user_id' в списке полей неоднозначен".

Мой вопрос: как мне достичь требуемого результата всего одним запросом?(Если возможно)

РЕДАКТИРОВАТЬ: Фактическое количество таблиц составляет около 6, поэтому, если бы вы могли учесть это в своем ответе, я был бы очень признателен.

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Попробуйте установить ваше значение в [Table_Name]. Формат столбца.

Вместо использования user_id попробуйте использовать posts.user_id

0 голосов
/ 17 июня 2011

Должно сработать что-то вроде следующего.

    UPDATE posts SET user_id=votes.user_id
    FROM posts INNER JOIN votes ON posts.something=votes.something

Выполняйте обновления по очереди, если требуется обновить более одной таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...