【问题标题】:Display all columns in in ruby left joins在 ruby​​ 左连接中显示所有列
【发布时间】:2015-10-07 09:58:19
【问题描述】:

我正在使用 rails 2 活动记录,我正在尝试在两个表上执行左连接。我在看到所有列命名表时遇到了问题。我只看到一个表的列

Students.all(:joins => "LEFT JOIN user on students.id =  cards.id")

Active Records生成的Sql是:

SELECT `students`.* FROM `students`  LEFT JOIN cards on students.email = cards.id

在这里可以注意到SELECT 语句仅在students 表上。 如何也从cards 表中获取列?

我正在使用 ruby​​ 1.8 和 Rails 2.3.8

【问题讨论】:

    标签: ruby-on-rails ruby activerecord


    【解决方案1】:

    默认情况下,Model.find 使用 select * 从结果集中选择所有字段。

    您可以通过查找上的 :select 选项指定子集。

    请改用这个

    Students.all(:select => "students.*, user.*", :joins => "LEFT JOIN user on students.id =  cards.id")
    

    Source

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      相关资源
      最近更新 更多