开发者社区> 问答> 正文

SQL查询以在表中插入ID

我还有3个单独的表Surgery,TypeOfSurgery和Procedure,每个表都填充有其他数据,并且每个表都应包含上一个表的ID(外键)。

例如,TypeOfSurgery具有FK列SurgeryId,Procedure具有FK列TypeOfSurgeryId等,我需要更新这些表中的现有条目!

而且我还有3个下拉列表,每个下拉列表都与上一个下拉列表相关。

预期的输出结果: 如果我选择腹部手术,则应在以下下拉列表中填充阑尾切除术和剖腹产;此外,如果我选择了阑尾切除术,则下一个下拉列表应填充程序A;如果我选择了剖腹产,则下一个下拉列表应包含过程B和步骤。 C等...

我的问题是如何通过一个查询为每个表中的每一行赋予相应的ID,因此下拉菜单将按照我上面的描述工作。

谢谢!

展开
收起
祖安文状元 2020-01-05 14:54:07 446 0
1 条回答
写回答
取消 提交回答
  • 听起来您好像在问如何将这种非规范化的数据分解为三个不同的表。

    这就是我要做的。

    (我通常不会回答帖子中不包含DDL的问题)

    首先,确保所有三个目标表都有identity针对PK定义的字段,以便自动生成键。

    填充Surgery。SurgeryID在此表中必须IDENTITY

    INSERT INTO Surgery (SurgeryName)
    SELECT DISTINCT Surgery FROM YourTable
    
    

    填充TypeOfSurgery。TypeOfSurgeryId一定是IDENTITY

    INSERT INTO TypeOfSurgery (SurgeryID, TypeOfSurgeryName)
    SELECT DISTINCT S.SurgeryID, SRC.TypeOfSurgery 
    FROM YourTable SRC
    INNER JOIN Surgery S
    ON S.SurgeryName = SRC.Surgery
    
    

    填充Procedure。ProcedureId一定是IDENTITY

    INSERT INTO Procedure (TypeOfSurgeryId, ProcedureName)
    SELECT DISTINCT S.TypeOfSurgeryId, SRC.Procedure
    FROM YourTable SRC
    INNER JOIN TypeOfSurgery S
    ON S.TypeOfSurgeryName = SRC.TypeOfSurgery
    
    2020-01-05 14:54:22
    赞同 展开评论 打赏
问答分类:
SQL
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载