【发布时间】:2015-05-03 22:45:45
【问题描述】:
我想获取所有 Foos,它们至少有一个类型为“Apple”的 Bar,但在架构中也没有类型为“Orange”的 Bar:
Foo
----
id
Bar
----
id
foo_id
type
如果我的数据是这样的:
Foos
----
| id |
| 1 |
| 2 |
| 3 |
Bars
----
| id | foo_id | type |
| 1 | 1 | Apple |
| 2 | 1 | Orange |
| 3 | 3 | Apple |
此查询将仅返回 ID=3 的 Foo,因为 1 有一个 Apple,但也有一个 Orange,而 2 没有 Orange,但也没有 Apple。
另外,我将用 Rails 标记这篇文章,因为 ActiveRecord 解决方案是首选但不是必需的。
【问题讨论】:
-
Foo和Bar是否相关类?如果有,怎么做? -
是的,Foo 有很多 Bars(如
foo_id所示)。
标签: mysql sql ruby-on-rails