从两个不同的表

时间:2017-01-02 07:18:25

标签: sql-server

我有三个表,从第一个表开始,我想将数据列transId发送到第二个表列refId,而第三个表中我想将数据列transId发送到第二个表列refId,包含第一个和第三个表的关系。这怎么可能?

3 个答案:

答案 0 :(得分:0)

我们可以在同一列上创建多个外键,但每个外键都需要存在该值。

Eg: 
Table1(1,2,3)
Table2(3,4)

您可以将值3插入table3列,该列与table1table2之间存在外键关系(值3 table1table2),但您无法插入任何其他值。

还有一种方法可以解决此问题,您可以在User Defined Function Check constraint列的table3内使用table1来检查table2中是否存在该值return redirect()->guest('login');

答案 1 :(得分:0)

您无需将表格中的数据发送给其他人。您只需要从foreign_key_column(refId)到Primary_key_column(transId)进行引用。
例如:
使用SQL Server

// foreign key in second table
CREATE TABLE Table2
(
refId int FOREIGN KEY REFERENCES Table1(transId)
)
// foreign key in third table
CREATE TABLE Table3
(
refId int FOREIGN KEY REFERENCES Table1(transId)
)

helped Tutorial

答案 2 :(得分:0)

似乎Table2是包含列transId的主表,它引用了两个表table 1和table 2.你需要在表2和表3中创建外键,用于列transId。你可以使用下面的语法来创建表之间的关系:

--foreign key in First table
CREATE TABLE Table1
(
 refId int FOREIGN KEY REFERENCES Table2(transId)
 )
-- foreign key in third table
 CREATE TABLE Table3
 (
 refId int FOREIGN KEY REFERENCES Table2(transId)
 )