首页 > 解决方案 > 有没有比这更有效的 JOIN 来获得正确的输出?

问题描述

目标是找到所有比在同一州或国外(又名“非美国”)乘坐火车更贵的汽车

这是我可以让它工作的唯一方法。我觉得效率低下。我想做类似的事情

但是,这会导致表格输出所有运输方式。有什么要修复的指针吗?此外,这个问题感觉不清楚。我不知道“在同一州或国外乘坐火车”是指火车在国外还是汽车也可以。

标签: mysqlsql

解决方案


您可以像这样组合这两个条件:

SELECT *
FROM Trips C, Trips T
WHERE (C.TravelMode = 'Car' AND T.TravelMode = 'Train' AND C.Fare > T.Fare 
AND (C.TripState = T.TripState OR T.TripState = 'Non-US'));

请注意,OR条件括在括号中。

检查演示


推荐阅读