在联结 table Transact-SQL 中填充一列
Populate a column in a junction table Transact-SQL
我有两个具有多对多关系的 table。
table 的相关部分如下所示:
Filmlager [ProgramID, Type]
Genre [GenreID, GenreTitle]
由于存在多对多关系,我创建了一个结点 table,如下所示:
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 table 中的 ProgramID 和 GenreID 进行比较。我试过使用嵌套查询但没有成功。
我在 Microsoft SQL Server Management Studio
中使用 Transact-SQL
提前致谢!
更新一下:
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;
我有两个具有多对多关系的 table。 table 的相关部分如下所示:
Filmlager [ProgramID, Type]
Genre [GenreID, GenreTitle]
由于存在多对多关系,我创建了一个结点 table,如下所示:
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 table 中的 ProgramID 和 GenreID 进行比较。我试过使用嵌套查询但没有成功。
我在 Microsoft SQL Server Management Studio
中使用 Transact-SQL提前致谢!
更新一下:
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;