SQL查询问题:关联两表显示不同ID对应的出发/目的地城镇名称
问题解决:关联两次TownCity表获取出发/目的地名称
问题根源
你当前的SQL只做了一次TownCity表关联,并且要求同一条TownCity记录的town_Id同时等于tik_source和tik_destination——这只有当两个ID完全相同时才会命中,ID不同时自然查不到结果。
修正后的查询语句
需要分别关联TownCity表两次,用别名区分出发地和目的地的关联逻辑:
SELECT TicketDetails.tik_source, TicketDetails.tik_destination, tc_src.town_name AS source, tc_dest.town_name AS destination, TicketDetails.Cust_Id FROM TicketDetails INNER JOIN TownCity tc_src ON TicketDetails.tik_source = tc_src.town_Id INNER JOIN TownCity tc_dest ON TicketDetails.tik_destination = tc_dest.town_Id WHERE TicketDetails.Cust_Id = 1
关键说明
- 给第一次关联的
TownCity起别名tc_src,专门匹配出发地ID,提取出发城镇名称; - 第二次关联
TownCity起别名tc_dest,匹配目的地ID,提取目标城镇名称; - 这样不管出发地和目的地ID是否一致,都能正确拉取对应的城镇名称。
内容的提问来源于stack exchange,提问作者waleed
相关产品推荐
相关产品推荐

