我有一个名为winenames
的数据库表,其中包含ID
和'WineName'列。
我有另一张名为wineinfo
的表,列name_id
和WineName
和year
在wineinfo表中,name_id为空,但在WineName列中有大约3000条包含数据的记录。
我想知道是否有SQL查询
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。
你可以使用update
:
update wineinfo wi join
winenames wn
on wi.winename = wn.winename
set wi.name_id = wn.id;
这样做之后,你应该从winename
中删除wineinfo
列。最好将这些信息保存在一个地方。然后,您需要修复数据提取过程,以便始终分配正确的ID。