我很好奇是否有一种简单的方法来存档这个查询:
SomeTable.where(value_b: SomeTable.where(value_a: 1).pluck(:value_b))
例如,如果我们有:
SomeTable
|id | a | b |
|1 | 1 | 2 |
|2 | 2 | 2 |
|3 | 3 | 3 |
|4 | 4 | 4 |
用户在系统中输入数字1
,我希望能够找到值b
的值a = 1
,2
,b
。然后使用此值1
查找具有此值的所有记录。
所以,我希望能够使用a.
并提取ID为1和2的SomeTable
谢谢!
答案 0 :(得分:0)
SomeTable.joins("JOIN some_table as replica on replica.value_b = some_table.value_b")
.where(replica: {value_a: 1})
答案 1 :(得分:0)
SomeTable.where("b in (SELECT b FROM some_tables where a = ?)", a_value)
a_value是您的' a'找到' b'值