IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Problème de requête avec cumul des conditions sur un champ


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Problème de requête avec cumul des conditions sur un champ
    Bon, je vais tâcher de vous exposer mon problème.

    Je référence mes articles avec des mots clés.
    Il peut y avoir plusieurs mots clés pour un article
    Il peut y avoir plusieurs articles par mot clé

    - une table article qui contient mes articles avec un champ article_id.

    - une table d'association referencer qui contient deux champs :
    article_id et mot_cle_id

    - une table mot_clequi contient mes mots clés avec un champ mot_cle_id

    La requête que je cherche à faire, c'est de sélectionner la liste des articles qui utilisent les mots clés dont les mot_cle_idsont 1, 2 et 3

    Je me suis retrouvé face au problème que lorsqu'on met :

    SELECT article_id
    FROM article AS A, referencer as R
    WHERE A.article_id=R.article_id
    AND R.mot_cle_id=1
    AND R.mot_cle_id=2
    AND R.mot_cle_id=3

    ça marche pas (évidemment).
    Qu'est ce que je dois faire pour cumuler les conditions sur un champ.

  2. #2
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut Re: Problème de requête avec cumul des conditions sur un cha
    Salut, je pense qu'il faudrait faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT article_id
    FROM article AS A, referencer as R
    WHERE A.article_id=R.article_id
    AND (R.mot_cle_id=1
    OR R.mot_cle_id=2
    OR R.mot_cle_id=3)
    En effet, les AND ne peuvent pas marcher, car un même artivcle ne peut avoir un id = 1 ET un id = 2 ET un id = 3.
    J'espère que tu as compris, sinon, n'hésite pas à demander.
    a+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Oui mais le problème que cette requête me renvoie tous les articles qui utilisent le mot clé 1, OU le mot clé 2, OU le mot clé 3.

    Alors que je recherche plus une requête qui m'afficherais le croisement des résultats entre les articles qui contiennent le mot clé 1, le mot clé 2 et le mot clé 3.

    PS : j'ai MySQL 4.0.26

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT article_id 
    FROM article AS A, referencer as R 
    WHERE A.article_id=R.article_id 
    AND (R.mot_cle_id = 1 
      OR R.mot_cle_id = 2 
      OR R.mot_cle_id = 3 )
    GROUP BY article_id
    HAVING COUNT(*) = 3
    ou COUNT(DISTINCT mot_cle_id) pour éliminer les cas où l'on a saisi (par erreur) plusieurs fois le même mot clé pour un article
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    merci beaucoup, c'est exactement ce que je cherchais.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Des conditions sur les champs du formulaire
    Par Chedi dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 03/01/2011, 13h14
  2. Paginate avec des conditions sur les clés etrangères.
    Par CeDRiC08 dans le forum Ruby on Rails
    Réponses: 3
    Dernier message: 03/07/2007, 09h49
  3. faire des conditions sur les champs
    Par biba158 dans le forum JDBC
    Réponses: 9
    Dernier message: 25/06/2007, 13h38
  4. [MySQL] Requête avec condition sur un champ
    Par nonhosonno dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/02/2007, 14h00
  5. Problème de requête avec une condition IN
    Par sorcer1 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/10/2005, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo