【问题标题】:Populate a column in a junction table Transact-SQL在联结表 Transact-SQL 中填充列
【发布时间】:2023-03-12 19:19:01
【问题描述】:

我有两个具有多对多关系的表。 表格的相关部分如下所示:

Filmlager [ProgramID, Type]

Genre [GenreID, GenreTitle]

由于存在多对多关系,我创建了一个如下所示的联结表:

ProgramGenre [ProgramID, GenreID, GenreOrder]

现在我想在GenreOrder 列中设置值1,其中Filmlager.Type=Genre.GenreTitle

到目前为止,我已经设法通过以下查询获取了我想要更新 GenreOrder 的 ProgramID 和 GenreID:

 SELECT p.ProgramID, p.GenreID
 FROM ProgramGenre p, Filmlager f, Genre g
 WHERE p.ProgramID = f.ProgramID
 AND p.GenreID = g.GenreID
 AND f."Type"= g.GenreTitle;

我不知道如何从这里开始。我无法弄清楚的部分是如何将两列的组合(上面查询的结果)与 ProgramGenre 表中的 ProgramID 和 GenreID 进行比较。我试过使用嵌套查询但没有成功。

我在 Microsoft SQL Server Management Studio 中使用 Transact-SQL

提前致谢!

【问题讨论】:

    标签: sql-server tsql junction-table


    【解决方案1】:

    只做更新:

    UPDATE p SET GenreOrder = 1
    FROM ProgramGenre p
    JOIN Filmlager f ON p.ProgramID = f.ProgramID
    JOIN Genre g ON p.GenreID = g.GenreID
    WHERE f."Type"= g.GenreTitle;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 2014-05-11
      • 2016-12-14
      相关资源
      最近更新 更多