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

时间:2017-12-24 22:24:25

标签: mysql sql

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

我有另一张名为wineinfo的表,其中列name_idWineName以及year

在wineinfo表中的

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

我想知道是否有SQL查询

  1. 会检查表wineinfo以及行' WineName'匹配表winenames中的任何一个,它抓取ID并将该ID放入name_id。
  2. 示例:我的葡萄酒名称如下所示

    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。

1 个答案:

答案 0 :(得分:3)

您可以使用update

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

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