объединить на двух разных столбцах - PullRequest
0 голосов
/ 19 октября 2018
Table 1 people_ID TypePerson
----------------------------
          5525       person1
          6250       person2
          5897       person2
          2584       person1

Table2 person1 person2
----------------------
         5525      5897
         2584      6250

Я хочу объединить table1 в двух разных столбцах table2.До сих пор у меня есть это:

select * 
from table1 join 
     table2 
     on people_ID = person1

Я точно знаю, что это не правильно, но я не знаю, как поступить. (Есть больше переменных, но я могу только присоединиться к ним, поэтому я оставил другойПрошу помочь!

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Я бы порекомендовал использовать LEFT JOIN.Если вы просто используете JOIN, он по умолчанию выполняет INNER JOIN, что приведет к тому, что вы не получите возвращаемого значения, если ваш идентификатор не существует в обоих столбцах 2-й таблицы.

SELECT *
FROM table1 t1
LEFT JOIN table2 t2a ON t1.people_ID = t2.person1
LEFT JOIN table2 t2b ON t1.people_ID = t2.person2
0 голосов
/ 19 октября 2018

Попробуйте этот запрос

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...