Table 1 people_ID TypePerson
----------------------------
5525 person1
6250 person2
5897 person2
2584 person1
Table2 person1 person2
----------------------
5525 5897
2584 6250
我想在table2的两个不同列上加入table1。 直到现在我有了这个:
select *
from table1 join
table2
on people_ID = person1
我知道这是不正确的事实,但是我不知道如何进行(有更多变量,但我只能加入这些变量,所以我将其他变量排除在外) 请帮忙!
答案 0 :(得分:-1)
尝试此查询
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
答案 1 :(得分:-1)
我建议使用LEFT JOIN
。如果仅使用JOIN
,则默认情况下它将执行INNER JOIN
,如果第二表的两列中都不存在您的ID,这将导致您没有返回值。
SELECT *
FROM table1 t1
LEFT JOIN table2 t2a ON t1.people_ID = t2.person1
LEFT JOIN table2 t2b ON t1.people_ID = t2.person2