Как ВНУТРИ СОЕДИНИТЬ один столбец с двумя разными столбцами? - PullRequest
1 голос
/ 07 марта 2019

У меня есть две таблицы:

**projects**

|Equity_holders| Financer  |
|--------------|-----------|
|Company 1     | Company 7 |
|Company 2     | Company 9 |
|Company 3     | Company 4 |

**entities**

|name         | country |
|-------------|---------|
|Company 1    |  USA    |
|Company 2    |  Italy  |
|Company 3    |  UK     |
|Company 4    |  Nigeria|
|Company 5    |  Brazil |
|Company 6    |  China  |
|Company 7    |  France |
|Company 8    |  China  |
|Company 9    |  Germany|

Я хочу, чтобы моя таблица отображения выглядела так:

|Equity_holders| country |Financer     | country |
|--------------|---------|-------------|---------|
|Company 1     |  USA    |Company 4    |  Nigeria|
|Company 2     |  Italy  |Company 7    |  France |
|Company 3     |  UK     |Company 9    |  Germany|                       

Я успешно использовал INNER JOIN, чтобы сопоставить столбец «Держатель капитала» с именем организации и отобразить соответствующую «страну»:

SELECT projects.Equity_holders,entities.country, projects.Financer,entities.country
FROM projects
INNER JOIN entities ON projects.Equity_holders LIKE CONCAT('%', entities.name, '%')
INNER JOIN entities A ON projects.Financer LIKE CONCAT('%', entities.name, '%' )

Но не могу получить столбец «Финансер» для отображения правильной соответствующей страны. Он просто дублирует столбец «Equity_Holders». У меня такое чувство, что проблема в запросе выбора, но не могу понять, что изменить.

Ответы [ 2 ]

1 голос
/ 07 марта 2019

Вы можете попробовать ниже - вам нужно присвоить псевдониму 2-й сущности e1 и использовать e1.country в качестве страны1

SELECT projects.Equity_holders,entities.country, projects.Financer,e1.country
FROM projects
INNER JOIN entities ON projects.Equity_holders=entities.name
INNER JOIN entities e1 ON projects.Financer=e1.name
0 голосов
/ 07 марта 2019

вы должны получить A.country после проектов. Финансист, если вы хотите, чтобы страна финансировала.

Попробуйте следующее:

SELECT projects.Equity_holders,entities.country, projects.Financer,A.country
FROM projects
INNER JOIN entities ON projects.Equity_holders LIKE CONCAT('%', entities.name, '%')
INNER JOIN entities A ON projects.Financer LIKE CONCAT('%', entities.name, '%' )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...