MarvinLeRouge Posté 11 Décembre 2007 Posté 11 Décembre 2007 Salut, J'ai une table item (id_item, titre, commentaire), et une table item_motcle (id_item_motcle, id_item, id_motcle). La table item_motcle contient la liste des id pour lesquels l'item id_item est associé au mot-clé id_motcle. Je souhaite récupérer la liste des items (avec leurs infos dans la table item) qui sont associé à TOUS les id_motcle passés en paramètres. Mais la requète que je fais me donne apparemment les résultats d'un OU, non d'un ET. Je dois avoir une erreur de logique dans ma requète mais je ne trouve pas laquelle. Exemple : Je souhaite récupérer tous les items ayant les mots-clés 2, 3, 5 et 8 (tous ces mots-clés devant être associés à chacun des items). SELECT id_item, titre, commentaireFROM item WHERE id_item IN (SELECT id_item FROM item_motcle WHERE id_motcle IN (2,3,5,8))ORDER BY titre Merci
Portekoi Posté 11 Décembre 2007 Posté 11 Décembre 2007 Le in évite de faire des 'OR' Donc la, tu vas devoir faire where id_item = '2' AND id_item = '3' etc...
MarvinLeRouge Posté 11 Décembre 2007 Auteur Posté 11 Décembre 2007 Ben oui, mais on ne peut pas avoir plusieurs valeurs de id_motcle sur une même ligne : la condition que tu indiques signifierait : les lignes pour lesquelles id_motcle = 2 ET id_motcle = 3 ce qui est évidemment impossible.
Portekoi Posté 11 Décembre 2007 Posté 11 Décembre 2007 Exact et je ne suis jamais tombé sur un cas comme celui là... Xor ne fait pas ca? je sais plus
Portekoi Posté 11 Décembre 2007 Posté 11 Décembre 2007 Bon, le XOR ne traite que des binaires donc va falloir que tu fasses des CASE pour tester et renvoyer toi même 1 ou 0
MarvinLeRouge Posté 12 Décembre 2007 Auteur Posté 12 Décembre 2007 Rahhhhhhhh c'est pas possible qu'on puisse pas faire ça avec une requète sql : c'est juste une bête intersection d'ensembles
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant