Contrainte de non-existence d'une paire clé-valeur précise sur une table jointe

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonsoir,

Je suis toujours aussi pataud avec du SQL, donc je viens vers vous pour avoir de l’aide.

J’ai un jeu de données que je dois filtrer en fonction d’une valeur sur une autre table. Concrètement : j’ai une demande de désinscription à un magazine pour une publication qui est gérée dans un CRM ou un autre, et je dois les traiter séparément selon le CRM. Cette information est portée par une paire clé-valeur pour certains CRMs, mais cette paire n’existe pas du tout pour le CRM historique (il n’y a pas de clé avec une valeur nulle).

Les tables impliquées sont desinscription en N-1 vers publication, qui est en 1-N vers publication_config où se trouvent les paires clé-valeur. La clé qui nous occupe est 'crm' (valeur de la colonne key).

Si je ne crois pas m’être trompé en effectuant des jointures internes avec "renforcement" sur la paire 'crm' afin de sélectionner les désinscriptions pour les publications des CRMs les plus récents, je constate que je n’ai pas le bon raisonnement pour sélectionner celles du CRM historique.

Pour un CRM défini, j’ai cette requête :

SELECT *
FROM   unsubscription c0_
       INNER JOIN publication c1_
               ON c0_.publication_id = c1_.id
       INNER JOIN publication_config c2_
               ON c1_.id = c2_.publication_id
                  AND ( c2_.name = 'crm'
                        AND c2_.value = ? )

Pour le vieux CRM, j’ai pensé à ceci :

SELECT *
FROM   unsubscription c0_
       LEFT JOIN publication c1_
              ON c0_.publication_id = c1_.id
       LEFT JOIN publication_config c2_
              ON c1_.id = c2_.publication_id
                 AND ( c2_.name = 'crm' )
WHERE  c2_.id IS NULL

Est-ce que quelqu’un pourrait m’expliquer ce qui ne va pas ?

Merci d’avance  :)

Evitez qu’on vous dise de les lire : FAQ PHP et SymfonyTutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -0
Auteur du sujet

Voilà ce qui arrive quand, au lieu de répondre à une question, on te dit que la documentation est à jour et qu’il faut aller la voir, et que la documentation n’est pas à jour…

Ouais, mais c’est un état temporaire, cette valeur

Édité par Ymox

Evitez qu’on vous dise de les lire : FAQ PHP et SymfonyTutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte