Правильный SQL-запрос - Обновление записей, где заголовок совпадает

0

У меня есть таблица базы данных, называемая winenames с ID столбцов и "WineName".

У меня есть другая таблица под названием wineinfo со столбцами name_id и WineName и year

в таблице wineinfo имя_id пуст, но имеет около 3000 записей с данными в столбце WineName.

Мне интересно, есть ли SQL-запрос, который

  1. проверит таблицу wineinfo и если строка "WineName" соответствует любому в winenames в таблице, она захватывает идентификатор и помещает этот идентификатор в name_id.

Пример. Мои имена вина выглядят так:

WineName     ID

Wine1        1
Wine2        2
Wine3        3
Wine4        4

Мой wineinfo выглядит так

WineName    name_id     year 
Wine1                   2018
Wine1                   2017
Wine1                   2013
Wine1                   2012
Wine2                   2018
Wine2                   2011
Wine2                   2019

Мой план состоит в том, чтобы удалить столбец winename из приведенной выше таблицы и просто иметь идентификатор коррозии в столбце name_id.

Теги:

1 ответ

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

Вы можете использовать update:

update wineinfo wi join
       winenames wn
       on wi.winename = wn.winename 
    set wi.name_id = wn.id;

После этого, вероятно, вы должны удалить winename столбец из wineinfo. Лучше хранить эту информацию в одном месте. Затем вам нужно будет исправить процесс проглатывания данных, чтобы он всегда назначал правильный идентификатор.

Ещё вопросы

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