2016-07-04 7 views
0

I Zwei Tabelle Zwei Tabellenname mit dem Namen folgend auf dieserSo verweisen Sie auf die Fremdschlüsseltabelle, um auf eine andere Tabelle zu verweisen?

1. TP_Users 
2. TP_Roles 

TP_Users Haben Felder Nach

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 haben Folgende Felder

Id PK, int, not null 
Role_Name varchar(200), null 
IsActive bit, null 

TP_Users Geordnete Tabelle Spaltenname RoleId seine Refrenced Tabelle TP_Roles Spalte na mich id.
Wie man Beziehungen herstellt und wie die Verbindung zwei Tabellen, die Abfrage benutzen?

+0

Siehe http://StackOverflow.com/Questions/10028214/add-foreign-Key-to-existing-Table – rahulbhondave

+0

Verwenden Sie eine Verknüpfung von roleId, um beide Tabellen zu kommunizieren – cralfaro

+0

@cralfaro seine nicht notwendige FK-Taste? Bitte erklären Sie ein wenig mehr – thenna

Antwort

0

Sie forieng key constraint auf Ihrem Benutzer-Tabelle

create table TP_Users 
(
....., --- column list here 
constraint FK_TP_Users_RoleId foreign key(RoleId) references TP_Roles(Id) 
) 

dann unter Verwendung einer einfachen inneren Verknüpfung wie folgt hinzufügen In verwandten Feldern können Sie Ihre Abfrage erstellen

select * 
from TP_Users 
inner join TP_Roles on TP_Roles.Id = TP_Users.RoleId 
0

Hallo hier ist ein Beispiel für die MySQL Datenbank Sprache, wie Sie beide Tabellen erstellen und eine einfache Abfrage, um sie zu verbinden.

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; 

Und hier eine einfache Abfrage, wo Sie beide Tabellen beitreten können:

select u.USER_NAME, r.ROL_NAME from TP_USERS u, TP_ROLES r where u.ROL_ID=r.ID 
+0

danke ich werde hinzufügen bleiben Felder – thenna