Я не знаю, как задать этот вопрос - на что-то можно ответить, но это вроде беспорядочно;)
Существуют две таблицы, которые сортируют флаги (метки) для объектов в другом месте.
Таблица 1: флаги в столбцах booka_flags
представляют интерес как id (INT) и заголовок (VARCHAR)
Таблица 2: элементы флага в столбцах booka_flags_items
представляют собой id (INT) и флаг (VARCHAR)
Я хочу изменить booka_flags_items.flag
из VARCHAR (который доступен из booka_flags.title
) в ID (который доступен из booka_flags.id
)
Моя "идея" написания этого запроса (после некоторых исследований) заключалась в следующем:
UPDATE
booka_flags_items
SET
booka_flags_items.flag = booka_flags.id
FROM
booka_flags_items
INNER JOIN
authors
ON
booka_flags_items.flag = booka_flags.title
Но это не работает. Также не работает этот запрос:
UPDATE
booka_flags_items
SET
booka_flags_items.flag = (
SELECT booka_flags.id
FROM booka_flags
INNER JOIN booka_flags_items
ON booka_flags_items.flag = booka_flags.title
)
Каким будет правильный способ решения такого запроса?
Я предполагаю, что вы хотели бы обновить столбец id booka_flags с столбцом id booka_flags, где заголовок соответствует флагам. Ваш обновленный запрос выглядит некорректно, как в mysql
Пытаться:
UPDATE booka_flags_items t1 INNER JOIN booka_flags t2 На t1.flag = t2.title SET t1.id = t2.id