如何用一个主id替换多个外部id

时间:2013-05-30 11:39:53

标签: sql sql-server foreign-keys primary-key

我有一个名为BUID(ID,Name)的表 - ID是主键  和表详细信息(DetailsID,NomineeID,NominatorID,NominationID) - DetailsID是主键,其他ID是BUID的值。

现在我需要通过用来自BUID表的适当值替换NomineeID,NominatorID,NominationID来从Details表生成报告表。

怎么做。 请帮忙。 事先提前了。

2 个答案:

答案 0 :(得分:0)

每次使用不同的别名多次加入buid表。像这样:

select whatever
from details join buid nominee on nomineeId = nominee.id
join buid nominator on nominatorId = nominator.id
same for nomination
etc

答案 1 :(得分:0)

我不完全确定我理解你的问题,但我认为这正是你要找的。基本上,每次使用不同的列加入BUID时,您会多次使用不同的别名引用DETAIL

CREATE TABLE BUID (ID int, Name varchar(100))
CREATE TABLE Details (DetailsID int, NomineeID int, NominiatorID int, NominationID int)
GO

SELECT Nominee.Name AS Nominee,
    Nominiator.Name AS Nominiator,
    Nomination.Name AS Nomination
FROM Details
JOIN BUID Nominee
    ON Details.NomineeID = Nominee.ID
JOIN BUID Nominiator
    ON Details.NominiatorID = Nominiator.ID
JOIN BUID Nomination
    ON Details.NominationID = Nomination.ID