Показать значение поля со значением из других таблиц - PullRequest
0 голосов
/ 07 мая 2018

У меня есть два столбца в таблице trades, которые ссылаются на столбец auto_id в другой таблице customers.

Я хочу отобразить имя клиента customers.customer_name, соответствующее каждому auto_id в этой таблице, для обоих столбцов.

В табличных сделках customer1_id и customer2_id являются внешними ключами, относящимися к одному и тому же первичному ключу в таблице customers, а именно auto_id.

Пример:

таблица customers:

|  auto_id  | customer_name |
|    150    |    jake       |
|    159    |    homer      |

стол trades:

| customer1_id | customer2_id |  status  |
|    150       |      159     |  traded  |
|    150       |      160     |   null   |
|    152       |      240     |  traded  |

Ожидаемый результат (при выборе или просмотре):

| customer1_id | customer2_id |  status  |
|   jake       |     homer    |  traded  |

Чего я на самом деле пытаюсь достичь: отобразить все сделки, в которых Джейк торговал с customer2_id, и отобразить реальное имя customer2 в результате (не auto_id, если это возможно, но, по крайней мере, его реальное имя).

Мне удалось отобразить только один столбец customerX_id с объединением (не заменяя идентификатор, а добавив его справа в окончательном выводе), но я не могу найти способ получить оба.

select p.customer1_id, p.customer2_id, b.auto_id, b.customer_name
from trades as p
inner join customers as b on b.auto_id = p.customer1_id;

Что дает

| customer1_id | customer2_id |  status  | auto_id | customer_name |
|   150        |     159      |  traded  |   150   |   jake        |

Мне просто нужно, чтобы Гомер где-то отображался.

1 Ответ

0 голосов
/ 07 мая 2018

Если ваша проблема заключается в получении имени второго клиента, то все, что вам нужно сделать, это добавить второе соединение:

select p.customer1_id, p.customer2_id, c1.auto_id, c1.customer_name, c2.auto_id, c2.customer_name
from trades as p
inner join customers as c1 on c1.auto_id = p.customer1_id
inner join customers as c2 on c2.auto_id = p.customer2_id
...