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

基于另一个表中的值的SQL列值,sql,Sql,我是SQL新手,无法理解这个简单的问题。 我有两张桌子: +----------+----------+ | Person_1 | Person_2 | +----------+----------+ | 1 | 2 | | 1 | 4 | | 3 | 2 | +----------+----------+ 及 Person_A和Person_B列中的值表示第二个表中的ID。我想将这两个表合并成这样的结果表:

我是SQL新手,无法理解这个简单的问题。 我有两张桌子:

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

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             |
+----------+----------+---------------+---------------+

我如何才能做到这一点?

使用
加入城市两次:

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

加入城市两次:

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

数据库表不需要有主键,但本例确实可以从中受益。到目前为止您尝试了什么?数据库表不需要有主键,但本例确实可以从中受益。到目前为止您尝试了什么?