【发布时间】:2015-12-07 23:38:39
【问题描述】:
我有 2 张桌子:约会和门。门有一个约会,约会属于一个门。约会表有 door_id。
我写的查询是:
scope :not_in_appointments, -> { joins("left outer join appointments on appointments.door_id = doors.id") }
问题:范围仍在返回约会表中的门。
目标:我们希望获得不在约会表中的门。
左外连接应该是这样做的。有人可以告诉我们为什么这个查询不起作用吗?
谢谢。
【问题讨论】:
-
你错了,左外连接不应该这样做。左外连接返回匹配的记录以及与右侧表不匹配的记录。为了得到你想要的,你需要左外连接,然后过滤掉匹配,例如,通过过滤那些连接键为空的。
标签: sql ruby-on-rails postgresql join scope