我有一张桌子叫
分支(分支机构,分支名称)
还有另一个表叫做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/

10-10 04:49