Mysql 如何将一列内部连接到两个不同的列?

Mysql 如何将一列内部连接到两个不同的列?,mysql,inner-join,Mysql,Inner Join,我有两张桌子: **projects** |Equity_holders| Financer | |--------------|-----------| |Company 1 | Company 7 | |Company 2 | Company 9 | |Company 3 | Company 4 | **entities** |name | country | |-------------|---------| |Company 1 |

我有两张桌子:

**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|                       
我已成功使用内部联接将“股权持有人”列与实体名称匹配,并显示相应的“国家”:

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, '%' )

但无法使“Financer”列显示正确的对应国家。它只是重复了“股权持有人”列。我感觉select查询有问题,但无法确定要更改什么。

您可以在下面尝试-您需要将您的第二个实体命名为e1,并将e1.country用作country1

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

如果你想知道出资人所在的国家,你应该在项目结束后得到一个.country.Financer

请尝试以下操作:

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, '%' )