Aide pour requête Mysql

Bonjour,

Je souhaite affiner une requête, elle me retourne presque les bon résultats.

La requête est la suivante :
SELECT `article_id`, `ville`, attribut_label,attribut_value
FROM `article`
LEFT JOIN `attribut` ON `fk_article_id` = `article_id`
WHERE `ville` IN('Auteuil-passy')
AND attribut_key = 'propertie' AND attribut_label IN ('lift','disable_access') AND at_value > 0


Le résultat est le suivant :


Je voudrais uniquement que le résultat me remonte les articles qui ont les deux champs 'lift','disable_access' et pas les 'lift' seul

Merci beaucoup pour votre aide

2 réponses

  1. Modérateur
    Bonjour,

    A tester :

    SELECT `article_id`, `ville`, attribut_label,attribut_value
    FROM `article`
    LEFT JOIN `attribut` ON `fk_article_id` = `article_id`
    WHERE `ville` IN('Auteuil-passy')
    AND attribut_key = 'propertie'  AND at_value > 0 
    AND article_id in (select fk_article_id from attribut 
                       where attribut_label IN ('lift','disable_access')
                       group by fk_article_id having count(*) = 2)


    Cdlt

            Un étranger, c'est un ami qu'on n'a pas encore rencontré.
    1. Salut jee,
      Merci, mais ça ne marche pas dans le cas ou je sélectionne que un attribut_label

      Il doit bien y avoir un moyen simple de faire ça, si j'ajoute attribut_label = '..' AND attribut_label = '..' il devrait me remonté ma ligne, mais la il m'affiche rien... et quand je fais le IN ('..','..') il me remonte tt ce qu'il trouve comme l'image plus haut dans mon post
  2. Modérateur
    que le résultat me remonte les articles qui ont les deux champs 'lift', 'disable_access'

    Donc bien évidemment la requête ne ramène que les enregistrements répondant à la question
    having count(*) = 2