You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在trades表中显示双外键关联的customers表客户名称

解决方法:通过两次联表查询替换ID为客户名称

你只需要把trades表和customers联表两次,分别关联两个外键字段,就能把对应的ID替换成客户名称了。这里给你两种常见的写法,你可以根据自己的习惯选择:

方法一:使用JOIN子句(推荐,可读性更强)

SELECT 
    c1.customer_name AS customer1_name,
    c2.customer_name AS customer2_name
FROM trades t
JOIN customers c1 ON t.customer1_id = c1.auto_id
JOIN customers c2 ON t.customer2_id = c2.auto_id;

方法二:使用子查询

如果你更习惯子查询的写法,也可以这样实现:

SELECT 
    (SELECT customer_name FROM customers WHERE auto_id = t.customer1_id) AS customer1_name,
    (SELECT customer_name FROM customers WHERE auto_id = t.customer2_id) AS customer2_name
FROM trades t;

关键细节说明:

  • 给两次关联的customers表起别名(比如c1c2)是为了区分同一个表的不同关联实例,避免字段名称冲突
  • AS为查询结果的字段设置别名,能让返回的列名更直观,比如customer1_namecustomer2_name

举个实际效果的例子:
假设你的trades表有一条数据:

customer1_idcustomer2_id
150159

用上面的SQL查询后,得到的结果会是:

customer1_namecustomer2_name
jakehomer

内容的提问来源于stack exchange,提问作者Hernn0

火山引擎 最新活动