搜尋

首頁  >  問答  >  主體

查詢基於參數和連接表的行的SQL方法

我在 Ruby 專案中有以下 GET 端點:

/endpoint/:special_param

#我有一個包含 2 個表格的資料庫。表 1 包含以下列:id、special_param_column、joinable_column

表 2 包含以下列:id、joinable_column、other_data

#這是我在資料庫模型中處理請求的程式碼:

def self.some_function(special_param)
  data = find_by_sql(["SELECT ..."])

  return data
end

我應該在find_by_sql 內部寫什麼來選擇表2 中與表1 中具有相同joinable_column 值的行,其中special_param_column 值等於傳遞到函數中的special_param 值?

例如,假設表包含以下資料:

Table 1
id | special_param_column | joinable_column
===========================================
1    208                    Keanu Reeves
2    349                    Jack Black
...

Table 2
id | other_data | joinable_column
=================================
1    24           Keanu Reeves
2    68           Jack Black
3    11           Jack Black
4    0            Keanu Reeves
...

如果 special_param = 208,我想返回表 2 中的第 1 行和第 4 行

P粉797855790P粉797855790505 天前596

全部回覆(1)我來回復

  • P粉254077747

    P粉2540777472023-09-08 14:51:19

    SELECT (* or whatever you want to return) from table1 t1
    INNER JOIN table2 t2
    ON t2.joinable_column = t1.joinable_column
    WHERE t1.special_param_column = special_param

    回覆
    0
  • 取消回覆