Ich bin neugierig, ob es eine einfache Möglichkeit, diese Abfrage zu archivieren:Verwenden Ergebnis einer Schiene, wo Abfrage für eine weitere Abfrage
SomeTable.where(value_b: SomeTable.where(value_a: 1).pluck(:value_b))
Ein Beispiel wenn wir haben:
SomeTable
|id | a | b |
|1 | 1 | 2 |
|2 | 2 | 2 |
|3 | 3 | 3 |
|4 | 4 | 4 |
Und der Benutzer geben Sie die Nummer 1
in das System, ich möchte in der Lage sein, Wert von b
wo Wert von a = 1
zu finden, die 2
ist. Verwenden Sie dann diesen Wert b
, um alle Datensätze mit diesem Wert zu finden.
So möchte ich in der Lage sein 1
zu verwenden und extrahieren mit Sometable-ID: 1 und 2
Dank!
Sie uns –
beitreten können, können Sie bitte das genaue Schema –
Post Ja. Bitte posten Sie das genaue Schema. Die von Ihnen gepostete macht keinen Sinn, weil 'SomeTable.where (value_a: 1)' Ihnen das gleiche Ergebnis gibt wie 'SomeTable.where (value_b: SomeTable.where (value_a: 1) .pluck (: value_b)) ' –