Subquery returns more than 1 row of sql query

I had such an error that can explain what I did wrong?

I add only this sql query:

(? = (select travel_region_id from relationships where travel_id = travels.id)) 

Error

 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 update is a request creation method

 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 
+4
source share
2 answers

The problem with this part of the conditions is:

 (7 = (select travel_region_id from relationships where travel_id = travels.id)) 

Obviously this subquery returns more than one travel_region_id , simply replacing = with IN

 (7 IN (select travel_region_id from relationships where travel_id = travels.id)) 
+1
source

If you get more than 1 row from a subquery, add a group by clause to your subquery

 SELECT travel_region_id FROM relationships WHERE travel_id = travels.id GROUP BY travel_region_id 
0
source

Source: https://habr.com/ru/post/1497381/


All Articles