找到连接表的有效方法

时间:2012-10-09 11:36:51

标签: database sql-server-2008 database-design join relational-database

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

表1 FILMS(带电影的表格)

表2歌曲(带歌曲的表格)

表3标题

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

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

如何将表格“标题”加入“电影”和“歌曲”?

P.S。我尝试通过向FILMS和SONGS

添加一个带有公式的新列[idKey]来创建唯一键

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

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

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

1 个答案:

答案 0 :(得分: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

要点是至少两个表应该有一个通用列