Aide pour requête Mysql

enqueteactualite Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -  
jee pee Messages postés 41520 Date d'inscription   Statut Modérateur Dernière intervention   -
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

jee pee Messages postés 41520 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
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é.
0
enqueteactualite Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   16
 
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
0
jee pee Messages postés 41520 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
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
0