如何引用外键表来引用另一个表?
问题描述:
我有两个表二表名称叫上这个如何引用外键表来引用另一个表?
1. TP_Users
2. TP_Roles
TP_Users
下面有以下字段
Id (PK, int, not null)
UserName (nvarchar(50), null)
UserEmail (nvarchar(50), null)
DisplayName (nvarchar(50), null)
Password (nvarchar(50), null)
RoleId (FK, int, not null)
IsActive (bit, not null) ------>Foreign Key Reference
ClientId (int, null)
TP_Roles
有以下字段
Id PK, int, not null
Role_Name varchar(200), null
IsActive bit, null
TP_Users
父表的列名RoleId
其Refrenced表TP_Roles
列na我id
。
如何建立关系以及如何使用查询链接两个表?
答
您可以在用户表中添加forieng key constraint通过使用简单的内部联接如下
create table TP_Users
(
....., --- column list here
constraint FK_TP_Users_RoleId foreign key(RoleId) references TP_Roles(Id)
)
然后在相关领域,你可以建立你的查询
select *
from TP_Users
inner join TP_Roles on TP_Roles.Id = TP_Users.RoleId
答
嗨,这里是一个示例为MySQL数据库语言,如何创建两个表和一个简单的查询来加入它们。
CREATE TABLE TP_USERS (
ID int(11) NOT NULL,
USER_NAME varchar(50),
ROL_ID int(11) NOT NULL,
PRIMARY KEY (ID),
CONSTRAINT `FK_roles` FOREIGN KEY (`ROL_ID`) REFERENCES `TP_ROLES` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE TP_ROLES (
ID int(11) NOT NULL,
ROL_NAME varchar(50),
IS_ACTIVE tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在这里,一个简单的查询,您可以加入两个表:
select u.USER_NAME, r.ROL_NAME from TP_USERS u, TP_ROLES r where u.ROL_ID=r.ID
+0
谢谢,我将添加保持领域 – thenna
请参阅http://stackoverflow.com/questions/10028214/add-foreign-key-to-existing-table – rahulbhondave
使用角色联合来沟通这两个表 – cralfaro
@cralfaro它没有必要FK键?请多解释一下 – thenna