【发布时间】:2011-09-30 14:51:22
【问题描述】:
我有 2 张桌子,它们之间有许多对多的基数。所以通过规范化我创建了这个:
User
UserId UserName ....
1 a
2 b
UserObject
UserId ObjectId
1 1
1 2
2 2
Object
ObjectId ObjectName
1 c
2 d
现在我想运行一个查询,我想知道拥有某些对象的用户。
例如:所有同时拥有对象 c 和 d 的用户。
一种方法
Select userid from UserObject where objectid=1 intersect Select userid from UserObject where objectid= 2
根据我的用例,我可能需要搜索具有 2-7 个对象组合的用户。写这么多交集是不谨慎的。
我正在开发 postgesql 9.1。
实现这一目标的其他有效方法是什么?
【问题讨论】:
标签: sql postgresql many-to-many intersection