代码之家  ›  专栏  ›  技术社区  ›  insane.dreamer

Activerecord:通过单个查询查找非关联记录和关联记录

  •  2
  • insane.dreamer  · 技术社区  · 15 年前

    给定以下场景,使用activerecord:

    用户属于事件

    因此,我尝试了以下方法:

    User.all(:joins => :event, :conditions => ["events.name != ?", "party"])
    

    然而,这将只返回那些有事件的用户,而不是“party”事件。它不会返回所有根本没有事件的用户,因为:joins自动将结果限制为仅关联的记录。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Sarah Mei    15 年前

    User.all(
      :include => :event, 
      :conditions => ["users.event_id IS NULL OR events.name != ?", "party"])