这是我从一本书中得到的一个问题(不记得是哪个),它是这样的:
你有三个表:
- 供应商(
supId, name
) - 产品(
prodId, name
) - 库存(
supId, prodId
)
您需要通过一次查询找到所有在其库存中拥有供应商 X 拥有的所有产品(或更多)的供应商(假设供应商 X 是具有 的供应商supId=1
)。
(所以如果供应商 1 在他的库存中有香蕉和苹果,你需要找到所有至少有香蕉和苹果的供应商)
您只能使用标准 SQL(包括连接)。
显然这是一个已知问题/问题,您应该查看这个问题: How to filter SQL results in a has-many-through relationship (优秀的解决方案和分析)