订单表双城市代码关联城市表查询城市名失败求助
解决订单表关联城市表获取出发/到达城市名称的问题
问题出在你两次关联同一张城市表时,没有给表分配不同的别名,导致查询无法区分两个关联结果中的city_name字段,最终只返回第一个匹配的字段值。
正确的做法是给城市表设置两个不同的别名,分别关联订单表的origin_city和destination_city字段,同时给查询返回的城市名称字段设置不同的别名,避免字段冲突。
示例SQL语句(通用关系型数据库适用):
SELECT o.order_id, o.origin_city, oc.city_name AS origin_city_name, o.destination_city, dc.city_name AS destination_city_name FROM orders o LEFT JOIN cities oc ON o.origin_city = oc.city_code LEFT JOIN cities dc ON o.destination_city = dc.city_code;
关键说明:
- 给两次关联的城市表分别起别名:
oc对应出发城市的关联表,dc对应到达城市的关联表 - 查询时明确指定从对应别名表获取
city_name,并通过AS给结果字段命名,确保两个城市名称能被正确区分返回
内容的提问来源于stack exchange,提问作者Scott Steinmetz
相关产品推荐
相关产品推荐

