我有一张桌子叫
分支(分支机构,分支名称)
还有另一个表叫做transfer
转移(transferid,sourcebranch,destinationbranch)
sourcebranch和destinationbranch都为分支表的branchid的Fk。
我需要显示一个看起来像这样的查询
tranferid源目的地
4英国
但是我所能得到的就是这样
Tranferid源Destinationid
4英国3
查询样本
选择tranferid,branch.branchname,transfer.destinationbranch
从转移
branch.branchid == transfer.sourcebranch上的内部联接分支
我如何显示目标分支。我心中的CTE
最佳答案
您需要将表branch
上的表transfer
联接两次,以便获取每个列的值。
SELECT a.*,
b.branchName AS sourceBranchName,
c.branchName AS destinationBranchName
FROM transfer a
INNER JOIN branch b
ON a.sourcebranch = b.branchID
INNER JOIN branch c
ON a.destinationbranch = c.branchID
要进一步获得有关联接的知识,请访问以下链接:
Visual Representation of SQL Joins
关于sql - 内部将2个外键连接到一个主键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14789773/