我有一個表,其中一列名為 path,它由數字組成,另一個名為 id 的兩串列由數字組成,名稱由單詞組成。當它們相等時,我想將列路徑與列 id 進行比較,我想將這個詞保存在列名中,它參考了陣列中同一個表中的 id。例如,第一個表的唯一列(路徑)是(10, 2, 4),第二個表的第一列(id)是(1, 2, 3),第二列(名稱)是第二個表是(湯姆,吉姆,約翰)。現在,當這個例子的路徑等于 id 時,我的意思是 2,然后我需要將單詞“Jim”存盤在一個陣列中,依此類推。
uj5u.com熱心網友回復:
這是您的確切問題的答案,其中示例中第一個和第二個表的相應模型分別是M1和M2,并且array_out是所需的名稱陣列。path假定列的值是整數。
paths = M1.pluck :path
array_out = M2.where(id: paths).pluck(:name)
編輯(下)
上面的答案會導致兩個 SQL 查詢。@Eyeslandic 指出以下只會在一個查詢中完成:
M2.where(id: M2.select(:path)).pluck(:name)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/364623.html
標籤:红宝石轨道
