[英]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
現在, FF
與FU
聯系,然后與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.