Rails like 構文に変換する必要がある次のクエリがあります。それを行う方法はありますか、それとも単純なMYSQLを使用する方が良いですか?
SELECT `terminals`.`serial`, Count(*) AS count, MAX(`logs`.`created_at`) AS created_at
FROM
(SELECT * FROM `terminals` WHERE `terminals`.`user_id`= 1) AS terminals
INNER JOIN `bap-backend`.`logs` ON terminals.`serial`=`logs`.`serial`
GROUP BY `serial` ORDER BY `logs`.`created_at`
内側の Select は、current_user の端末のみが選択されるようにすることであり、端末のシリアルのみが必要です。このクエリは、すべてのユーザーの端末の概要を示し、端末が提供したログの数と、最後のログがいつ発生したかを表示するために必要です。クエリは私のテストデータで機能しますが、レールでの実装は私にとって少し複雑です。
ありがとう!
編集
Google の場合は、find_by_sql を使用するだけで、変数を追加できます。次の例のように、コマンドの前にクラスを追加するだけです。
@items_event = Item.find_by_sql(["SELECT items.*, ei_relationships.itemprice, ei_relationships.currency, ei_relationships.itemunit
FROM `ei_relationships` INNER JOIN `items` ON `items`.`id` = `ei_relationships`.`item_id`
WHERE `ei_relationships`.`event_id` = ?", @event[:id]])