Значения столбца SQL на основе значений из другой таблицы

#sql

#sql

Вопрос:

Я новичок в 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 относятся к идентификатору во второй таблице. Я хочу объединить эти две таблицы, чтобы получить в результате таблицу, подобную этой:

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

Как я могу это сделать?

Комментарии:

1. Таблицы базы данных не обязаны иметь первичные ключи, но в этом примере они могли бы действительно принести пользу.

2. Что вы уже пробовали?

Ответ №1:

Используйте JOIN с city дважды:

 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