【问题标题】:How do I formulate an SQL query to add a foreign key from a string in the parent table?如何制定 SQL 查询以从父表中的字符串添加外键?
【发布时间】:2014-06-14 01:27:16
【问题描述】:

我目前在 SQL 数据库中有两个表。当前没有关系的父表(Categories)和子表(Items)。

---------------------------
-  Categories             -
---------------------------
-                         -
-  INT(PK)   CategoryID   -
-  NVAR(50)  CategoryName -
-                         -
---------------------------

---------------------------
-  Items                  -
---------------------------
-                         -
-  INT(PK)   ItemID       -
-  NVAR(50)  ItemName     -
-  NVAR(50)  CategoryName -
-                         -
---------------------------

我已经在 Items 表中添加了一个外键字段 (CategoryID),并在不强制外键约束的两个表之间分配了一对多关系。

如何构造一个查询,该查询通过 Items 表的 CategoryName 字段从 Categories 表中检查 CategoryID,并将生成的 CategoryID 分配给整个 Items 表的新外键字段?

对 Item.CategoryName 字段进行 NULL 测试会很有帮助。

【问题讨论】:

    标签: sql sql-server database


    【解决方案1】:

    一个简单的带有 JOIN 的 UPDATE 语句就可以解决问题,就像这样......

    UPDATE I
      SET I.CategoryID = C.CategoryID
    FROM Items I INNER JOIN Categories C
    ON I.CategoryName  = C.CategoryName 
    

    【讨论】:

    • 确实做到了!谢谢楼主
    猜你喜欢
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多