Mysql 将rails where查询的结果用于另一个查询

Mysql 将rails where查询的结果用于另一个查询,mysql,ruby-on-rails,ruby,Mysql,Ruby On Rails,Ruby,我很好奇是否有一种简单的方法来存档此查询: SomeTable.where(value\u b:SomeTable.where(value\u a:1).拨动(:value\u b)) 例如,如果我们有: SomeTable |id | a | b | |1 | 1 | 2 | |2 | 2 | 2 | |3 | 3 | 3 | |4 | 4

我很好奇是否有一种简单的方法来存档此查询:

SomeTable.where(value\u b:SomeTable.where(value\u a:1).拨动(:value\u b))

例如,如果我们有:

    SomeTable
    |id |    a    |   b    |
    |1  |    1    |   2    |
    |2  |    2    |   2    |
    |3  |    3    |   3    |
    |4  |    4    |   4    |
用户在系统中输入编号
1
,我希望能够找到
b
的值,其中
a=1
,即
2
。然后使用
b
的此值查找具有此值的所有记录

因此,我希望能够使用
1
并提取id为1和2的SomeTable

谢谢

SomeTable.joins("JOIN some_table as replica on replica.value_b = some_table.value_b")
         .where(replica: {value_a: 1})

a_值是你的“a”值,要找到“b”值

你可以加入我们,你可以发布准确的方案吗。请发布准确的模式。你发布的那个没有任何意义,因为
SomeTable.where(value\u a:1)
会给你与
SomeTable.where(value\u b:SomeTable.where(value\u a:1).pull(:value\u b))
对不起,我认为我不能发布确切的模式,它太大了@LarsonB,
SomeTable。其中(值a:1)
不提供id为2的
SomeTable
,将
Pull
更改为
select
,ActiveRecord将使用子查询。
SomeTable.where("b in (SELECT b FROM some_tables where a = ?)", a_value)