正确的SQL查询 - 更新标题匹配的记录

问题描述 投票:0回答:1

我有一个名为winenames的数据库表,其中包含ID和'WineName'列。

我有另一张名为wineinfo的表,列name_idWineNameyear

在wineinfo表中,name_id为空,但在WineName列中有大约3000条包含数据的记录。

我想知道是否有SQL查询

  1. 将检查表wineinfo,如果行'WineName'匹配表winenames中的任何一个,它抓取ID并将该ID放入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列中只有相应的ID。

mysql sql
1个回答
3
投票

你可以使用update

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

这样做之后,你应该从winename中删除wineinfo列。最好将这些信息保存在一个地方。然后,您需要修复数据提取过程,以便始终分配正确的ID。

© www.soinside.com 2019 - 2024. All rights reserved.