【问题标题】:Outer join in ActiveRecord for complicated joinActiveRecord 中的外部联接用于复杂联接
【发布时间】:2013-12-27 11:01:17
【问题描述】:

我的查询如下所示:

Flight.joins(:airline, 
             flight_legs:[:departure_airport,:arrival_airport,
                aircraft:[aircraft_model:[:aircraft_make]]]).where('flights.user_id = ?',@current_user.id).order("#{sort_column} #{sort_direction}")

有点大,是的。我在这里遇到的问题是,因为它是一个 INNER JOIN,所以返回的行不包括那些没有所有列出的连接的行。

是否有一种简单的方法可以获取所有列出的行,并允许我仍然使用 where 查询来查询各个链接表?

【问题讨论】:

    标签: sql ruby-on-rails activerecord join


    【解决方案1】:

    我想这会解决你的问题

    Flight.joins("LEFT JOIN airlines ON airlines.id=flights.airline_id LEFT JOIN flight_legs ON flight_legs.id= flights.flight_leg_id LEFT JOIN departure_airports ON flight_legs.departure_airport_id=departure_airport_id LEFT JOIN arrival_airports ON arrival_airports.id=flight_legs.arriavak_airport_id LEFT JOIN aircrafts ON flights.aircraft_id=aircrafts.id LEFT JOIN aircraft_models ON aircraft_model.id=aircrafts.aircraft_model_id LEFT JOIN aircraft_makes ON aircraft_makes.id=aircraft_model.aircraft_make_id").where('flights.user_id = ?',@current_user.id).order("#{sort_column} #{sort_direction}")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多