SQL Server INNER JOIN具有多个关系的多个内部联接
技术问答
104 人阅读
|
0 人回复
|
2023-09-13
|
我有以下查询。它工作正常,但我需要从另一个名为FB的表中提取BUserName,该表具有与FU表中的UserID相关的UserID字段。这可能吗?/ X# l$ t( U1 ]! n4 }( Z/ U
SELECT TOP 100
5 _/ v6 k- k1 s9 S FF.XID, ' c9 v" s' A) M4 g3 }
FF.YID,
- B* F. R, |- P4 E6 w6 h FF.Title,
$ M9 L. z+ |0 Z FF.FileName,
- P3 a( ]6 Z2 ^5 W( n* X! _ FF.FilePath, , |6 j1 r5 a' j, r* c' B& a+ {
FU.UserName as FUUserName,
% f$ G2 J6 b0 Q+ S9 x/ G FU.UserName as BUserName+ y$ d$ k! ~ n, V
FROM FF 5 e# Y) T& b4 z
INNER JOIN FU ON FU.UserID = FF.UserID) j/ e: x5 V4 S. r+ `2 `
只是为了澄清。我在FB表中没有UserName列。它确实有FB.UserID,它与FF.UserID有关系,这是我要从中提取第二个UserName的地方。因此,通过这种关系,我试图从与FB表中的userID相关的FF.UserID表中拉出用户名。这有道理吗?
4 E: h2 | v( Q2 ^ # C# l3 a0 K' T; j
解决方案:
& Q n+ a) b0 o
4 D" `$ v# O! }( m/ e6 j
( d8 Z6 o4 w% X" |' l5 v% M' q& W# o+ S) w8 C7 I8 a
您想要这样的东西:
4 X+ o/ I0 p7 W2 b- R1 }SELECT TOP 100 ' E( ^8 `. }- s9 v0 R$ i3 t
FF.XID,
1 K/ n0 ~, {; MFF.YID,
+ t( n3 y) X# F* _3 \8 hFF.Title, 4 z. r- T* K' L' y% x
FF.FileName,
' R0 S! q& L Y3 l% l2 W6 D( P" yFF.FilePath, 8 ~& ^. q0 d0 e/ A: n8 z
FU.UserName as FUUserName, 9 G5 ?* x' l: c& X# x+ S: Y8 u
FU.UserName as BUserName,) |/ }- R) T7 Z
FB.BUserName as FB_BUserName1 O" ^9 l# \2 @8 y, ~6 ~' A$ d
FROM FF
5 T% K- \ G. [$ X INNER JOIN FU ON FU.UserID = FF.UserID
6 q% t: [* j* [ INNER JOIN FB ON FB.UserID = FU.UserID
5 P7 G( M/ ]# H3 L6 C现在,FF与绑定FU,然后与绑定FB。由于它们都是内部连接的,因此您可以使用关联法则来理解这种行为就像它们都被链接在一起一样。9 v w3 c f- g0 x
FF = FU FU = FB Therefore FF = FB |
|
|
|
|
|