基于另一个表中的值的SQL列值
我是SQL新手,无法理解这个简单的问题。 我有两张桌子:基于另一个表中的值的SQL列值,sql,Sql,我是SQL新手,无法理解这个简单的问题。 我有两张桌子: +----------+----------+ | Person_1 | Person_2 | +----------+----------+ | 1 | 2 | | 1 | 4 | | 3 | 2 | +----------+----------+ 及 Person_A和Person_B列中的值表示第二个表中的ID。我想将这两个表合并成这样的结果表:
+----------+----------+
| 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
数据库表不需要有主键,但本例确实可以从中受益。到目前为止您尝试了什么?数据库表不需要有主键,但本例确实可以从中受益。到目前为止您尝试了什么?