mysql - 如何从 Rails 上的多个表进行 SQL 查询?

标签 mysql sql ruby-on-rails ruby inner-join

感谢您阅读我的问题。

我想知道在 Rails 中表达查询的最佳正确方法是什么,这些查询可以进行许多联接并从多个表中选择属性:

SELECT 
    ffca.name, 
    ffc.name, 
    ft.title, 
    concat(s.first_name, ' ', s.last_name), 
    pf.name, 
    ft.amount, 
    date_format(ft.created_at,'%d/%m/%y') 
FROM 
    finance_transactions ft 
    INNER JOIN students s                  ON ft.student_id = s.id 
    INNER JOIN payment_forms pf            ON ft.payment_form_id = pf.id 
    INNER JOIN finance_fees ff             ON ft.finance_fees_id = ff.id 
    INNER JOIN finance_fee_collections ffc ON ff.fee_collection_id = ffc.id 
    INNER JOIN finance_fee_categories ffca ON ffc.fee_category_id = ffca.id;

如果您需要更多信息,请随时询问我。

非常感谢。

最佳答案

例如

您的模型是finance_transactions

   finace_transaction = FinanceTransaction.find_by_sql(
    "SELECT 
        ffca.name as name, 
        ffc.name as name1, 
        ft.title as title, 
        concat(s.first_name, ' ', s.last_name) as full_name, 
        pf.name as pf_name, 
        ft.amount as count, 
        date_format(ft.created_at,'%d/%m/%y') as time
    FROM 
        finance_transactions ft 
        INNER JOIN students s                  ON ft.student_id = s.id 
        INNER JOIN payment_forms pf            ON ft.payment_form_id = pf.id 
        INNER JOIN finance_fees ff             ON ft.finance_fees_id = ff.id 
        INNER JOIN finance_fee_collections ffc ON ff.fee_collection_id = ffc.id 
        INNER JOIN finance_fee_categories ffca ON ffc.fee_category_id = ffca.id"
    )

表 Finance_transactions 表必须包含列 name、name1、title、full_name、pf_name、count、time

然后你可以使用:

finace_transaction.name1 gets ffc.name

关于mysql - 如何从 Rails 上的多个表进行 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5697168/

相关文章:

mysql - 使用 MAGMI 的 Magento Mass Import 图像 - 排除图像

mysql - MySQL如何知道一个段落包含多少个单词?

MySQL - 在最高分列表中对用户进行排名

mysql - 通过用户id插入数据

php - MySQL/PHP : group by classes

php - 使用 datepicker jquery ajax php 更新 mysql 数据库字段

sql - Linq to SQL nvarchar问题

ruby-on-rails - 辅助方法中的参数

javascript - Rails javascript 仅在重新加载后有效

ruby-on-rails - 使用 twitter 设计/omniauth 登录 - 验证失败 : email can't be blank