J'ai une table d'index plusieurs à plusieurs, et je veux faire une requête de type include/exclude. Fid est vraiment un index entier, mais ici comme des lettres pour une meilleure compréhension. Voici un exemple de table:Plusieurs à plusieurs requêtes de table
table t
eid | fid
----+----
1 | A
1 | B
1 | C
2 | B
2 | C
3 | A
3 | C
4 | A
4 | B
5 | B
Voici quelques exemples de requêtes que je veux.
- De quoi les Eids ont-ils la valeur B, et NON A? (Réponse eid 2 et 5)
- Quels eids ont fid C et NOT A? (Réponse eid 2)
Je n'arrive pas à trouver une requête qui va le faire.
J'ai essayé une jointure réflexive comme ceci:
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
Cela ne fonctionnera pas, car il retournera encore les lignes où eid = 1 et fid = C.
Suis-je clair sur ce que je veux?
merci, cela a fonctionné dans mysql – Pyrolistical