如何在SQL中将路线表与站点详情表进行关联查询?
表关联实现方法
要实现需求,你需要两次关联站点详情表,分别匹配出发地和目的地的code字段,以此获取对应的name和id。假设路线表名为routes,站点详情表名为stations,具体SQL语句如下:
SELECT r.from_code, s_from.name AS from_name, s_from.id AS from_id, r.to_code, s_to.name AS to_name, s_to.id AS to_id FROM routes r INNER JOIN stations s_from ON r.from_code = s_from.code INNER JOIN stations s_to ON r.to_code = s_to.code;
核心要点:
- 给站点表设置两个不同别名
s_from和s_to,用来区分是匹配出发地还是目的地的站点数据 - 使用
INNER JOIN会只保留两张表中code完全匹配的记录;如果需要保留路线表中存在但站点表无对应数据的记录,可替换为LEFT JOIN - 通过
AS给字段重命名,得到目标表中的from_name、from_id等字段
执行该SQL后,就能得到你需要的结果表。
内容的提问来源于stack exchange,提问作者bluekit46
相关产品推荐
相关产品推荐

