从外键引用中获取结果

时间:2013-06-17 13:54:55

标签: sql database foreign-keys key

这是一个菜鸟问题所以请光临我。

我正在尝试建立一个保存/维护一组用户权限的数据库。我也在使用Microsoft SQL Server Management Studio。

我创建了一个Accounts表,其中PK = UserId。

我使用PK = ProfileId

创建了一个Profiles表

我使用以下SQL语句

创建了UserPrivileges表
CREATE TABLE UserPermissions 
(
    UserId int REFERENCES Accounts (UserId),
    ProfileId int REFERENCES Profiles (ProfileId),
    PRIMARY KEY (UserId, ProfileId)
)

但是当我从UserPrivileges表执行Select查询时,即使我在之前的2个表中有一些条目,也不会返回任何内容。

根据我对外键的理解,它们的值取自引用的表。并且由于引用的表确实有条目,为什么没有输入UserPrivileges表?

2 个答案:

答案 0 :(得分:1)

外键只是一个参考。如果并不意味着您不需要表格中的条目。你需要它们!但是这些条目也存在于相关表中。这是一个非常好的解释:http://www.w3schools.com/sql/sql_foreignkey.asp

答案 1 :(得分:1)

首先,您没有创建UserPrivileges表。您创建了一个UserPermissions表。 (如果我们相信你的代码。)

其次,在UserPermissions中没有输入任何行,因为您没有在UserPermissions中插入任何行。外键不会使行显示为魔术。 决定哪些行属于UserPermissions,插入它们。