Sql select 联合相同 table
Sql select union same table
此致
我有以下表格
客户端
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
但我只想要一列,例如 Personnel
|id | name |
|sa1| name |
|sa2| name |
有人可以帮助我吗?
我猜你正在寻找 Union All
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
此致
我有以下表格
客户端
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
但我只想要一列,例如 Personnel
|id | name |
|sa1| name |
|sa2| name |
有人可以帮助我吗?
我猜你正在寻找 Union All
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