前提・実現したいこと
railsでDBからデータを持ってきたいです
例えば色を貸し出すという状況でid, name, color_idのカラムからなるテーブルrental_colorsがあります
これは歴史的経緯から同じ情報がダブって入っています(ここでいうrental_colorsの0, 1)
そして、貸し出し済みを示すin_used_colorsテーブルが有り、in_used_colords.rental_color_idはrental_colors.idを指します
ここでrentorl_colors.color_idを示す値を受け取って、rental_colorsから貸し出し可能な色を取り出したいです
具体例としてはcolor_id=1の行がほしいとき、rental_colors.id = 2が帰ってきてほしいです
処理の順番としては
in_used_colors.rental_colorを見るrental_colors.id=1を探すrental_colors.id=0, 1を同一のものとして検索候補から落とすcolor_id=12行目を見つける
という流れになると思っています
そこで、タイトルに有る2つのカラム(ここではrental_colors.nameとrental_colors.color_id)でdistinctするのかなと思ったのですが、どうもうまくいきません
rentol_colors ↓
| id | name | color_id |
|---|---|---|
| 0 | taro | 1 |
| 1 | taro | 1 |
| 2 | jiro | 1 |
| 3 | jiro | 2 |
in_used_colors
| id | rental_color_id |
|---|---|
| 0 | 1 |
SQLで言えばこの記事の以下のようなクエリに相当するrailsの書き方を知りたいです
sql
1select 2 * 3from 4 table t 5where 6 (t.col1, t.col2) in ( 7 ("hoge", "fuga"), 8 ("foo", "bar") 9 )
https://qiita.com/lithtle/items/4517785c67843f601443#nn
わかりにくい例になってしまいましたが、どなたかご教示ください
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。