如何在Oracle SQL Developer中关联两张表获取单行结果
解决SQL关联后出现多行结果的问题
你之前得到两行结果,是因为只对stationTable做了一次关联,导致Table1里的出发、到达站点ID分别匹配到stationTable的两条记录,形成了笛卡尔积。
要得到单行结果,需要两次关联stationTable,分别对应出发和到达的站点,给表取不同别名区分即可:
SELECT t1.Id, dep.ActualID AS ActualDepartureId, arr.ActualID AS ActualArrivalId FROM Table1 t1 LEFT JOIN stationTable dep ON t1.StationDepartureId = dep.StationId LEFT JOIN stationTable arr ON t1.StationArrivalID = arr.StationId;
这条语句里:
- 用
dep作为出发站点表的别名,关联Table1的StationDepartureId - 用
arr作为到达站点表的别名,关联Table1的StationArrivalID
这样就能在一行中同时获取到对应的两个ActualID,不会产生多余行。
内容的提问来源于stack exchange,提问作者soorya kumar
相关产品推荐
相关产品推荐

