我有一个名为winenames
的数据库表,其中包含ID
列和' WineName'。
我有另一张名为wineinfo
的表,其中列name_id
和WineName
以及year
,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。
答案 0 :(得分:3)
您可以使用update
:
update wineinfo wi join
winenames wn
on wi.winename = wn.winename
set wi.name_id = wn.id;
执行此操作后,您应该从winename
中删除wineinfo
列。最好将这些信息保存在一个地方。然后,您需要修复数据提取过程,以便始终分配正确的ID。