Обновите одну строку в столбце с несколькими строками с помощью SQL - PullRequest
0 голосов
/ 30 августа 2018
update gw2_roster_wvw 
set user_id = 
(select user_id FROM xf_user_field_value where gw2_roster_wvw.member = xf_user_field_value.field_value);

это мой запрос на обновление gw2_roster_wvw с помощью идентификаторов пользователей из фактической базы данных форумов

Что мне нужно сделать сейчас, это взять эту обновленную таблицу и теперь обновить

xf_user_field_value

xf_user_field_value содержит 3 поля:

user_id
field_id
field_value

вот пример вывода:

select * from xf_user_field_value where user_id = "1";
+---------+-------------+--------------------------------------------------+
| user_id  | field_id         | field_value                                      |
+---------+-------------+--------------------------------------------------+
|       1         | facebook     |                                                  |
|       1         | gw2_account | xxxxxx.4725                                        |
|       1         | gw2_groups  | a:2:{s:3:"wvw";s:3:"wvw";s:4:"Yank";s:4:"Yank";} |
|       1         | gw2_rank    |                                                  |
|       1         | skype            |                                                  |
|       1         | twitter          |                                                  |
+---------+-------------+--------------------------------------------------+

Я думаю, что мне нужно будет сделать что-то вроде этого:

update xf_user_field_value 
set field_value = 
(select rank FROM gw2_roster_wvw where xf_user_field_value.user_id = gw2_roster_wvw.user_id) 
where field_id = "gw2_rank";

Есть ли лучший / более простой способ сделать это?

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