#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