Обновите таблицу MySQL индексом из другой таблицы на основе значения, установленного в обеих таблицах

0

Я не знаю, как задать этот вопрос - на что-то можно ответить, но это вроде беспорядочно;)

Существуют две таблицы, которые сортируют флаги (метки) для объектов в другом месте.

Таблица 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
)

Каким будет правильный способ решения такого запроса?

Теги:
sql-update
join

1 ответ

2
Лучший ответ

Я предполагаю, что вы хотели бы обновить столбец 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

  • 0
    спасибо, это сработало ... последний запрос - "ОБНОВИТЬ booka_flag_items, поскольку Я ВНУТРИ СОЕДИНИТЬ booka_flags как F On I.flag = F.title SET I.flag = F.id"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню