【问题标题】:Relation "has_one" - how to chose elements that have nil?关系“has_one” - 如何选择有零的元素?
【发布时间】:2019-09-27 16:20:36
【问题描述】:

假设我有一个 Ticket 模型并且这个 Ticket 有一个问题:

has_one :issue, inverse_of: :ticket

我需要定义一个查询,只选择没有问题的票证(在它的位置有nil)。 我尝试了“包含”,我尝试了“left_joins”但不起作用。仍然有问题的票。 我需要这样的东西(确定它不能工作,但描述了我需要的东西):

Ticket.where(issue: nil)

【问题讨论】:

  • 你在使用 Rails 吗?
  • @SebastianPalma 是的

标签: ruby-on-rails ruby activerecord


【解决方案1】:

你有 left_joinsleft_outer_joins 的别名):

Ticket.left_joins(:issue).where(issues: { id: nil })
# SELECT "tickets".*
# FROM "tickets"
# LEFT OUTER JOIN "issues"
# ON "issues"."ticket_id" = "tickets"."id"
# WHERE "issues"."id" IS NULL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 2011-05-03
    相关资源
    最近更新 更多