MySQL在IN内部查询SELECT

时间:2018-01-08 14:35:17

标签: mysql

我是SQL的新手,我有一个comlpex查询,它只选择每个cityId到每个cityId的最便宜的一行:

SELECT cityIdFrom, cityIdTo, MIN(fromToPrice) fromToPrice_min 
FROM pricing
WHERE cityIdFrom IN (91, 94, 95, 99)
AND cityIdTo IN (91, 94, 95, 99)
GROUP BY cityIdFrom, cityIdTo

所以我们从91到94最便宜,最便宜从91到95等。如果只有列Bull IS 1时,如何将此查询修复为cityIdFrom 91的SELECT行。 例如,如果我们有:

cityIdFrom - cityIdTo - fromToPrice - Bull
91, 94, 3000, 0
91, 94, 5000, 1
91, 95, 1000, 0
91, 99, 1500, 1
99, 95, 2000, 0

我们的查询会给我们:

91, 94, 5000, 1
91, 99, 1500, 1
99, 95, 2000, 0

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我的查询中只有一行:

AND (CityIdFrom = 91 AND Bull = 1) OR CityIdFrom <> 91

非常感谢@ADyson,他帮了我很多!