Sql 在两个不同的列上连接

Sql 在两个不同的列上连接,sql,join,Sql,Join,我想将表1连接到表2的两个不同列上。 到目前为止,我有一个: Table 1 people_ID TypePerson ---------------------------- 5525 person1 6250 person2 5897 person2 2584 person1 Table2 person1 person2 ---------------------

我想将表1连接到表2的两个不同列上。 到目前为止,我有一个:

Table 1 people_ID TypePerson
----------------------------
          5525       person1
          6250       person2
          5897       person2
          2584       person1

Table2 person1 person2
----------------------
         5525      5897
         2584      6250
我知道事实上这是不正确的,但我不知道如何继续。有更多的变量,但我只能加入这些,所以我忽略了其他变量 求救

试试这个查询

select * 
from table1 join 
     table2 
     on people_ID = person1
我建议使用左连接。如果您只是使用JOIN,那么默认情况下它会执行一个内部联接,如果您的ID在第二个表的两列中都不存在,那么这将导致您得不到任何返回值

Declare @table1 table(people_ID int, TypePerson varchar(100))
insert into @table1(people_ID, TypePerson)
select 5525,'person1' union
select 6250,'person2' union
select 5897,'person2' union
select 2584,'person1' 

declare @table2 table(person1 int, person2 int)
insert into @table2(Person1, person2)
select  5525,      5897 union
select  2584,      6250 

select * from @table1
select * from @table2

select *
from @table2 t1
left join @table1 t2a on 
t2a.people_ID= t1.person1
left join @table1 t2b on 
t2b.people_ID= t1.person2

使用不同的别名连接同一个表两次。请阅读编辑帮助并执行操作,查看格式化的帖子并查看其编辑方式。请阅读并采取行动。这包括预期产出。在表2的两个不同列上连接表1不清楚。解释一下你所看到的例子和你想要的是什么样的?请参阅谷歌搜索“stackexchange家庭作业”。示例数据很好,但也指定了预期结果。您预期的结果是什么?
SELECT *
FROM table1 t1
LEFT JOIN table2 t2a ON t1.people_ID = t2.person1
LEFT JOIN table2 t2b ON t1.people_ID = t2.person2