簡體   English   中英

SQL Server INNER JOIN具有多個關系的多個內部聯接

[英]SQL Server INNER JOIN multiple inner joins with multiple relations

我有以下查詢。 它工作正常但我需要從另一個名為FB的表中提取BUserName,該表具有與FU表中的UserID相關的UserID字段。 這可能嗎?

    SELECT TOP 100 
    FF.XID, 
    FF.YID, 
    FF.Title, 
    FF.FileName, 
    FF.FilePath, 
    FU.UserName as FUUserName, 
    FU.UserName as BUserName
    FROM FF 
    INNER JOIN FU ON FU.UserID = FF.UserID 

只是為了澄清。 我在FB表中沒有UserName列。 它確實有FB.UserID,它與FF.UserID有關,這是我想從中提取第二個UserName的地方。 因此,在這種關系中,我試圖從與FB表中的userID相關的FF.UserID表中拉下用戶名。 這有道理嗎?

你想要這樣的東西:

SELECT TOP 100 
FF.XID, 
FF.YID, 
FF.Title, 
FF.FileName, 
FF.FilePath, 
FU.UserName as FUUserName, 
FU.UserName as BUserName,
FB.BUserName as FB_BUserName
FROM FF 
    INNER JOIN FU ON FU.UserID = FF.UserID 
    INNER JOIN FB ON FB.UserID = FU.UserID

現在, FFFU聯系,然后與FB聯系。 由於它們都是內在的聯系,你可以使用結社法來理解這種行為就像它們都是聯系在一起的。

 FF = FU   FU = FB    Therefore FF = FB

另外兩個例子

1-結果為null:

use my_DB
SELECT tbl_users.UserName
,Updated.UserName   /*Updated not in tbl*/

FROM [my_DB].[dbo].[my_tbl]
left outer join  tbl_users ON tbl_users.UserID = my_tbl.UserID
left outer join tbl_users Updated ON tbl_users.UserID = my_tbl.LasUpdatedUserID

2-沒有結果為null:

SELECT tbl_users.UserName
,Updated.UserName   /*Updated not in tbl*/
FROM [my_DB].[dbo].[my_tbl]
INNER JOIN  tbl_users ON tbl_users.UserID = my_tbl.UserID
INNER JOIN tbl_users Updated ON tbl_users.UserID = my_tbl.LasUpdatedUserID

**

像那樣?

SELECT TOP 100  
    FF.XID,  
    FF.YID,  
    FF.Title,  
    FF.FileName,  
    FF.FilePath,  
    FU.UserName as FUUserName,  
    FU.UserName as BUserName,
    FB.BUserName  
    FROM FF  
    INNER JOIN FU ON FU.UserID = FF.UserID  
    INNER JOIN FB ON FU.UserID = FB.UserID  
SELECT TOP 100 
FF.XID, 
FF.YID, 
FF.Title, 
FF.FileName, 
FF.FilePath, 
FU.UserName as FUUserName, 
FB.UserName as BUserName
FROM FF 
INNER JOIN FU ON FU.UserID = FF.UserID 
INNER JOIN FB ON FU.UserID = FB.UserID 
 SELECT TOP 100 
    FF.XID, 
    FF.YID, 
    FF.Title, 
    FF.FileName, 
    FF.FilePath, 
    FU.UserName as FUUserName, 
    FB.BUserName
    FROM FF 
    INNER JOIN FU ON FU.UserID = FF.UserID 
    INNER JOIN FB ON FB.UserID = FU.UserID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM