如何用一个主id替换受损的foerign id

时间:2022-07-21 20:11:15

i have a table called BUID(ID,Name) - ID is primary key and Table Details(DetailsID,NomineeID,NominatorID,NominationID) - DetailsID is primary key and other ID are value from BUID.

我有一个名为BUID(ID,Name)的表—ID是主键和表细节(DetailsID,财经信息,财经信息,提名信息,提名信息)—DetailsID是主键,其他ID是来自BUID的值。

Now i need to generate report table from Details table by replacing NomineeID,NominatorID,NominationID with appropriate values from BUID table.

现在,我需要从Details表中生成报告表,用从BUID表中适当的值替换提名者eid,名义上的。

How to do it. Please help. Thnaks in advance.

如何去做。请帮助。提前Thnaks。

2 个解决方案

#1


0  

I'm not entirely sure I understood your question but I think this is what you are looking for. Basically you will reference BUID multiple times with different alias' each time joining back to DETAIL with a different column.

我不完全明白你的问题,但我认为这就是你要找的。基本上,您将使用不同的别名多次引用BUID,每次使用不同的列返回细节。

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

#2


0  

You join to the buid table more than once using a different alias each time. Something like this:

每次使用不同的别名多次连接到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  

I'm not entirely sure I understood your question but I think this is what you are looking for. Basically you will reference BUID multiple times with different alias' each time joining back to DETAIL with a different column.

我不完全明白你的问题,但我认为这就是你要找的。基本上,您将使用不同的别名多次引用BUID,每次使用不同的列返回细节。

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

#2


0  

You join to the buid table more than once using a different alias each time. Something like this:

每次使用不同的别名多次连接到buid表。是这样的:

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