将列中的列从另一个表连接到单个列

时间:2018-01-08 07:43:00

标签: sql sql-server

我正在尝试学习如何将一个表中的多个列连接到另一个表中的单个列。

这是我最简单的表结构:

小组

   id | team_name |
   1  |   teamA   |
   2  |   teamB   |
   3  |   teamC   |
   4  |   teamD   |

有一个名为“TeamInOut”的表

      In    |   Out  
      -     |   teamA 
    teamB   |     -  
      -     |   teamC  
    teamD   |     -   
      -     |   teamD 

我想回来的结果是:

      In    |   Out    |teamid
      -     |   teamA  |  1
    teamB   |     -    |  2
      -     |   teamC  |  3
    teamD   |     -    |  4
      -     |   teamD  |  4

我的问题是,如何创建teamid列?请帮帮我。

2 个答案:

答案 0 :(得分:2)

以下是您需要的查询,但最好学习如何操作:

Declare @Team Table ( id int , team_name varchar(50))
Declare @TeaminOut table (ins varchar(50) , outs varchar(50))

insert into @Team
select 1 , 'teamA' union 
select 2 , 'teamB' union 
select 3 , 'teamC' union 
select 4 , 'teamD' 

insert into @TeaminOut
select '-', 'teamA' union
select 'teamB', '-' union
select '-', 'teamc' union
select 'teamD', '-' union
select '-', 'teamD'
[![enter image description here][1]][1]

select tio.ins , tio.outs , t.id
from @Team as t
inner join @TeaminOut as tio   ON t.team_name = tio.ins or  t.team_name = tio.outs
order by id

这是结果

enter image description here

祝你好运

答案 1 :(得分:-2)

SELECT * FROM Teams JOIN TeamInOut