SQL列值基于另一个表中的值

问题描述 投票:0回答:1

我是SQL的新手,无法想出这个简单的事情。我有两张桌子:

+----------+----------+
| Person_1 | Person_2 |
+----------+----------+
|        1 |        2 |
|        1 |        4 |
|        3 |        2 |
+----------+----------+

+----+------+
| ID | City |
+----+------+
|  1 | A    |
|  2 | B    |
|  3 | A    |
|  4 | A    |
+----+------+

列Person_A和Person_B中的值引用第二个表中的ID。我想结合这两个表来得到一个像这样的结果表:

+----------+----------+---------------+---------------+
| Person_1 | Person_2 | Person_1_City | Person_2_City |
+----------+----------+---------------+---------------+
|        1 |        2 | A             | B             |
|        1 |        4 | A             | A             |
|        3 |        2 | A             | B             |
+----------+----------+---------------+---------------+

我怎样才能做到这一点?

sql
1个回答
2
投票

使用JOIN与城市两次:

select p.persion1, p.persion2, 
  c1.city as persion1city,
  c2.city as persion2city
from  person p
left join city c1 on p.Person_1 = c1.id
left join city c2 on p.Person_2 = c2.id
© www.soinside.com 2019 - 2024. All rights reserved.