MarvinLeRouge Posté 11 Décembre 2007 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 11 Décembre 2007 Partager 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... Lien vers le commentaire Partager sur d’autres sites More sharing options...
MarvinLeRouge Posté 11 Décembre 2007 Auteur Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 11 Décembre 2007 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 11 Décembre 2007 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
MarvinLeRouge Posté 12 Décembre 2007 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant