我有这样一个时刻,当某事似乎很简单,但我似乎无法找到正确的查询。我正在寻找一个查询来检查某个多对多关系是否已经存在。考虑下表:查询以检查是否存在多对多关系
+---------+---------+ | feed_id | coll_id | +---------+---------+ | 1 | 1 | | 1 | 2 | | 1 | 3 | +---------+---------+
这是表'feeds'和表'collections'之间的多对多关系表。
我需要一个查询来检查一个提要是否已经存在,其中包含集合1和2,并且只有1和2.如果有,我需要它的feed_id。
在上表中,此提要不存在。
该查询的更一般描述是:查找包含所有coll_id的供稿,并且供稿不包含任何其他集合。这将意味着用于上面的例子如下:
- 确保coll_id是IN(1,2)
- 确保一个COUNT(*)WHERE FEED_ID = 1将返回2(coll_id的数量)
步骤2中有什么问题是我的子查询中没有可用的feed_id的值。
还是我完全在错误的轨道上?
任何帮助将不胜感激!
这样做的问题是,我不知道FEED_ID。我用IN(1,2)查询这个表,并且它应该返回0行,因为我正在寻找一个feed,其中'coll_id'为1和2.不应该返回Feed_id 1,因为它也有coll_id = 3。如果我使用IN(1,2,3)执行相同的查询,那么它应该返回feed_id 1. – wkjagt 2010-11-26 04:23:24
等待,您是否需要_all_只有coll 1和2的`feed_id`的列表? – cambraca 2010-11-26 04:25:14