
こんにちは、現役沖縄フリーランスエンジニアのmah(MaLanka)です。
このブログでは、
僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、
ノウハウなどを書いていきます。
今回は、
- 【Rails】joinしたテーブルに対し、where句で特定の日付前後(以前以降)で絞り込みしたい
です。
【Rails】joinしたテーブルに対し、where句で特定の日付前後(以前以降)で絞り込みしたい
- 【Rails】joinしたテーブルに対し、where句で特定の日付前後(以前以降)で絞り込みしたい
- 結論
- 例: ordersテーブルのorder_dateが、2020/01/20以降のUserを取得する
- 発行されるSQL
- 参考リンク
結論
where句でテーブル名とカラム名両方を指定し、
文字列で条件指定すれば出来ました。
Model.joins(:join対象のテーブル名).where("join対象のテーブル名.join対象のテーブルにあるカラム名 >= ?", 日付)
例: ordersテーブルのorder_dateが、2020/01/20以降のUserを取得する
User.joins(:orders).where("orders.order_date >= ?", Date.parse('2020/01/20'))
発行されるSQL
SELECT 1 AS one FROM `users` INNER JOIN `orders` ON `orders`.`user_id` = `users`.`id` WHERE (orders.order_date >= '2020-01-20') LIMIT 1
参考リンク
teratail【テラテイル】|ITエンジニア特化型Q&Aサイト
Rails ActiveRecord/SQL 小技集 #Ruby - Qiita
以上です。