我有一個多對多的索引表,我想對它做一個包含/排除類型的查詢。多對多表查詢
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