0

这是问题所在:我们有 3 个表(MS SQL 2008 R2):

表 1 FILMS(带薄膜的表)

表 2 歌曲(有歌曲的表)

表 3 标题

由于“电影”和“歌曲”可以包含多个标题(我有很多不同语言的标题),我想将所有标题保留在单独的“标题”表中。Films 和 Songs 表中的主键基于 [int] 标识规范,增量为 +1。

例如:我们可以拥有 ID=3 的电影和歌曲。

如何将“Titles”表与“Films”和“Songs”连接起来?

PS我试图通过添加一个带有公式的新列[idKey]来创建唯一键,以电影和歌曲

对于电影来说(CONVERT([nvarchar](10),[ID],(0))+'f')

对于歌曲来说(CONVERT([nvarchar](10),[ID],(0))+'s')

其中 [ID] 是他们的身份规范但我无法将此列标记为主键

4

1 回答 1

0

即使您在这三个表之间没有外键约束,您也可以通过加入三个表来获取数据。

 SELECT title.*, film.*,songs.* 
 FROM title t JOIN film f
    ON t.title_name = f.title_name
 JOIN songs s
    ON t.title_name = s.title_name

关键是至少两个表应该有一个通用列

于 2012-10-09T12:08:06.270 回答