如何从同一个连接表中选择不同的值,但是在不同的外键上

spr*_*t12 0 sql t-sql sql-server join view

我有一个表Users连接多次,如下所示:

在此输入图像描述

所以,当我从用户那里请求Name一个Request名字的时候,我想要两个,这是我第一次面对这种情况而且我不知道如何从SQL中做到这一点.

查询可能如下:

SELECT Name as Originator, Name as Requestee FROM View ... JOIN ... WHERE Id = 123
Run Code Online (Sandbox Code Playgroud)

SWe*_*eko 5

这很简单,你需要两个用户,你加入Users表两次,如:

SELECT ou.Name as Originator, ru.Name as Requestee 
FROM Requests r
  INNER JOIN Users ou ON r.Originator_Id = ou.Id
  INNER JOIN Users ru ON r.Requestee_Id = ru.Id
WHERE r.Id = 123
Run Code Online (Sandbox Code Playgroud)

  • 如果两个ID中的任何一个可以为空,则使用`LEFT`连接. (2认同)