如何将这个ActiveRecord查询重写为MySQL?

如何将这个ActiveRecord查询重写为MySQL?,mysql,sql,ruby-on-rails,ruby,activerecord,Mysql,Sql,Ruby On Rails,Ruby,Activerecord,我从Rails代码中得到以下查询: cars = Car.where('cars.status = 0 AND cars.new = 0') cars.each do |car| SharedCar.create(car_id: car.id, owner_id: OWNER_ID) end 我需要直接运行这个查询到MySQL控制台。如何创建与上述ActiveRecord相同的MySQL 编辑:重点显然是如何组合第一个和第二个查询,而不是如何在MySQL中加载第一个查询 谢谢。使用t

我从Rails代码中得到以下查询:

cars = Car.where('cars.status = 0 AND cars.new = 0')
cars.each do |car|
  SharedCar.create(car_id: car.id, owner_id:  OWNER_ID)
end  
我需要直接运行这个查询到MySQL控制台。如何创建与上述ActiveRecord相同的MySQL

编辑:重点显然是如何组合第一个和第二个查询,而不是如何在MySQL中加载第一个查询


谢谢。

使用
to_sql
方法:

Car.where('cars.status = 0 AND cars.new = 0').to_sql
# => SELECT * FROM cars WHERE status = 0 AND new = 0;
结果插入查询将被删除

INSERT shared_cars (car_id, owner_id)
    SELECT cars.car_id, <owner_id>
    FROM cars WHERE cars.status = 0 AND cars.new = 0
插入共享车(车号、车主号)
选择cars.car\u id,
来自cars.status=0和cars.new=0的车辆

使用
到sql
方法:

Car.where('cars.status = 0 AND cars.new = 0').to_sql
# => SELECT * FROM cars WHERE status = 0 AND new = 0;
结果插入查询将被删除

INSERT shared_cars (car_id, owner_id)
    SELECT cars.car_id, <owner_id>
    FROM cars WHERE cars.status = 0 AND cars.new = 0
插入共享车(车号、车主号)
选择cars.car\u id,
来自cars.status=0和cars.new=0的车辆

我会在不使用Ruby的SQL中编写类似的代码:

INSERT INTO shared_cars (car_id, owner_id) 
  SELECT DISTINCT id, <owner_id> FROM cars WHERE status = 0 AND new = 0;
插入共享车(车号、车主号)
从状态为0且新建为0的车辆中选择不同的id;

我会在不使用Ruby的SQL中编写类似的代码:

INSERT INTO shared_cars (car_id, owner_id) 
  SELECT DISTINCT id, <owner_id> FROM cars WHERE status = 0 AND new = 0;
插入共享车(车号、车主号)
从状态为0且新建为0的车辆中选择不同的id;

up for use to\u sql我相信您也可以使用to\u sql将create方法转换为sql。up for use to\u sql我相信您也可以使用to\u sql将create方法转换为sql。