使用其他表中的值显示字段值
Display field value with value from other tables
我在 table trades
中有两列引用另一个 table customers
中的 auto_id
列。
我想为两列显示对应于 table 中每个 auto_id
的客户姓名 customers.customer_name
。
在table交易中,customer1_id
和customer2_id
都是指向tablecustomers
中同一个主键的外键,即auto_id
.
示例:
table customers
:
| auto_id | customer_name |
| 150 | jake |
| 159 | homer |
table trades
:
| customer1_id | customer2_id | status |
| 150 | 159 | traded |
| 150 | 160 | null |
| 152 | 240 | traded |
预期结果(在 select 或视图中):
| customer1_id | customer2_id | status |
| jake | homer | traded |
我真正想要实现的目标是:显示 jake 与 customer2_id
进行交易的所有交易,并在结果中显示客户 2 的真实姓名(如果可能,不是 auto_id
,但是至少它的真实姓名)。
我只设法显示一个带有连接的 customerX_id
列(不是替换 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 |
我只需要在某处显示 homer。
如果您的问题是获取第二个客户的姓名,那么您需要做的就是添加第二个连接:
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
我在 table trades
中有两列引用另一个 table customers
中的 auto_id
列。
我想为两列显示对应于 table 中每个 auto_id
的客户姓名 customers.customer_name
。
在table交易中,customer1_id
和customer2_id
都是指向tablecustomers
中同一个主键的外键,即auto_id
.
示例:
table customers
:
| auto_id | customer_name |
| 150 | jake |
| 159 | homer |
table trades
:
| customer1_id | customer2_id | status |
| 150 | 159 | traded |
| 150 | 160 | null |
| 152 | 240 | traded |
预期结果(在 select 或视图中):
| customer1_id | customer2_id | status |
| jake | homer | traded |
我真正想要实现的目标是:显示 jake 与 customer2_id
进行交易的所有交易,并在结果中显示客户 2 的真实姓名(如果可能,不是 auto_id
,但是至少它的真实姓名)。
我只设法显示一个带有连接的 customerX_id
列(不是替换 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 |
我只需要在某处显示 homer。
如果您的问题是获取第二个客户的姓名,那么您需要做的就是添加第二个连接:
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