我有一个多对多的索引表,我想对它做一个包含/排除类型的查询。多对多表查询
fid实际上是一个整数索引,但在这里作为更容易理解的字母。下面是一个示例表:
表t
eid | fid
----+----
1 | A
1 | B
1 | C
2 | B
2 | C
3 | A
3 | C
4 | A
4 | B
5 | B
这里有我想要一些样本查询。
- 什么eids fid B,而不是A? (回答eid 2和5)
- 什么eids fid C,而不是A? (回答eid 2)
我似乎无法弄清楚这样做的查询。
我已经尝试了自加入这样的:
select *
from t as t1
join t as t2
where t1.eid=t2.eid
and t1.fid!=t2.fid
and t1.fid=B and t2.fid!=A
这是行不通的,因为它仍然会返回行,其中EID = 1,FID = C。
我清楚我想要什么吗?
谢谢,在mysql中工作 – Pyrolistical 2008-09-24 19:31:12