Sql server Sql选择联合同一个表

Sql server Sql选择联合同一个表,sql-server,join,union,Sql Server,Join,Union,问候 我有下列表格 客户端 id, name, saler1, saler2, saler3, dateSale... 人员 id, name... 我的问题是 select S1.*, S2.* from Client C left join Personnel S1.id on = C.saler1 left Join Personnel S2.id on = C.saler2 我的结果是 S1.id, S1.name ... S2.id, S2.name 但我只想要一列,例如p

问候

我有下列表格

客户端

id, name, saler1, saler2, saler3, dateSale...
人员

id, name...
我的问题是

select S1.*, S2.* 
from Client C 
left join Personnel S1.id on = C.saler1
left Join Personnel S2.id on = C.saler2
我的结果是

S1.id, S1.name ... S2.id, S2.name
但我只想要一列,例如
personals

|id | name |
|sa1| name |
|sa2| name |

有人能帮我吗?

我想你一直都在找工会

select S1.* From Client C Left join Personnel S1.id on = C.saler1
UNION ALL
select S1.* From Client C Left join Personnel S1.id on = C.saler2

我不完全确定你在问什么,但从你已经写的问题来看,我认为你在追求这样的东西

Select *
FROM (
SELECT id, name, saler1 AS Saler, dateSale FROM Client Where saler1 IS NOT NULL
UNION ALL 
SELECT id, name, saler2 AS Saler, dateSale FROM Client Where saler2 IS NOT NULL
UNION ALL 
SELECT id, name, saler3 AS Saler, dateSale FROM Client Where saler3 IS NOT NULL
) C
Left join Personnel P  on P.id  = C.saler
因为这正是你想要的,所以做同样事情的另一种圆滑方式是使用
UNPIVOT
类似于

Select P.* , up.id, up.dated
FROM Client UNPIVOT (
                      Salers for Saler IN (Saler1,Saler2,Saler3)
                     )up
LEFT JOIN Personnel P ON up.Salers = P.id