我有這樣的錯誤可以解釋我做錯了什麼嗎?如果你正在從子查詢超過1排
子查詢返回多於1行sql查詢
(? = (select travel_region_id from relationships where travel_id = travels.id))
錯誤
ActiveRecord::StatementInvalid (Mysql::Error: Subquery returns more than 1 row: select count(*) from travel_start_days, cars, travels
where travels.id = travel_start_days.travel_id and travels.id = travel.car_id and travel_start_days.day > adddate(curdate(), interval '2' day) and (7 = (select travel_region_id from relationships where travel_id = travels.id)) and '2013-08-16' <= travel_start_days.day):
更新 WHIS的方法來創建查詢
def conditions
where = ''
param = []
if @region && @region != ''
where += 'travels.region_id = ?'
param += [@region.to_i]
end
if @car && @car != ''
where += ' and ' if where != ''
where += 'cars.id = ?'
param += [@car.to_i]
end
if @relation && @relation != ''
where += ' and ' if where != ''
where += '(? = (select travel_region_id from relationships where travel_id = travels.id))'
param += [@relation.to_i]
end
if @start_port && @start_port != ''
where += ' and ' if where != ''
where += '(? = (select location_id from travel_days where travel_id = travel_start_days.travel_id and day_no = 1 order by arrival asc limit 1))'
param += [@start_port.to_i]
end
return where == '' ? nil : ["travel_start_days.day > adddate(curdate(), interval ? day) and " + where] + [@criteria[5]] + param
end
樣本數據和表結構PLS –