You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL关联查询问题:如何将两列ID映射为LOCATION表的不同名称

解决ORDER表关联LOCATION表获取双向地址名称的问题

你的问题出在只对LOCATION表做了一次关联,导致destination和origin字段都引用了同一次关联后的LOCATION.name值,自然结果相同。要分别获取两个ID对应的名称,需要两次关联LOCATION表,并给表起不同别名区分。

正确的MySQL查询语句

SELECT 
    `ORDER`.id, 
    `ORDER`.responsable, 
    `ORDER`.date, 
    `ORDER`.state, 
    dest_loc.name AS destination, 
    orig_loc.name AS origin 
FROM `ORDER`
LEFT JOIN `LOCATION` AS dest_loc ON `ORDER`.destination = dest_loc.id
LEFT JOIN `LOCATION` AS orig_loc ON `ORDER`.origin = orig_loc.id;

语句说明

  • 第一次关联LOCATION并命名为dest_loc,通过ORDER.destination关联dest_loc.id,获取目的地名称
  • 第二次关联LOCATION并命名为orig_loc,通过ORDER.origin关联orig_loc.id,获取出发地名称
  • 使用LEFT JOIN而非INNER JOIN,确保即使ORDER表中的destination或origin没有匹配的LOCATION记录时,ORDER的行依然会被保留(对应字段显示NULL)

按照这个语句查询,就能得到你期望的结果:destination为HOUSE、origin为WORK。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 21:34:55