Bonjour,
Je cherche à envoyer des mails aux membres inscrits à certaines activités
mais aussi à certains "membres spécifiques" (Membres MAIL) inscrits à
aucune activité.
Le requête ci-dessous fonctionne bien mais j'ai du inscrire mes "membres
spécifiques" à une activité "Bidon" pour que ça marche.
Comment faire pour éviter cette "inscription bidon" ?
Merci de votre aide
Pascal
SELECT DISTINCT
membres.nom,
membres.email,
uc.name,
membres.id AS _user_id
FROM membres
INNER JOIN services_users su ON su.id_user = membres.id
INNER JOIN users_categories uc ON uc.id = membres.id_category
INNER JOIN services s ON s.id = su.id_service
WHERE ((s.label = "2022 ADHESIONS" OR s.label = "2023 ADHESIONS") AND
NOT
membres.email IS NULL) OR uc.name="Membres MAIL"
ORDER BY membres.nom ASC
LIMIT 1000
;
Bonsoir Pascal,
Vous pouvez simplement remplacer vos jointures "INNER" (qui sont
bloquantes, càd qui vont empêcher de renvoyer un résultat si la jointure
ne peut pas se faire) en "LEFT" pour les champs qui ne sont pas
forcement remplis :
SELECT DISTINCT
membres.nom,
membres.email,
uc.name,
membres.id AS _user_id
FROM membres
LEFT JOIN services_users su ON su.id_user = membres.id
INNER JOIN users_categories uc ON uc.id = membres.id_category
LEFT JOIN services s ON s.id = su.id_service
WHERE ((s.label = "2022 ADHESIONS" OR s.label = "2023 ADHESIONS") AND
NOT membres.email IS NULL) OR uc.name="Membres MAIL"
ORDER BY membres.nom ASC
LIMIT 1000
;
Bonne soirée,
Matthieu.
On 4/8/23 11:37, PC Chevaux wrote:
> Bonjour,
>
> Je cherche à envoyer des mails aux membres inscrits à certaines
> activités mais aussi à certains "membres spécifiques" (Membres MAIL)
> inscrits à aucune activité.
> Le requête ci-dessous fonctionne bien mais j'ai du inscrire mes
> "membres spécifiques" à une activité "Bidon" pour que ça
marche.
> Comment faire pour éviter cette "inscription bidon" ?
> Merci de votre aide
> Pascal
>
> SELECT DISTINCT
> membres.nom,
> membres.email,
> uc.name <http://uc.name>,
> membres.id <http://membres.id> AS _user_id
> FROM membres
> INNER JOIN services_users su ON su.id_user = membres.id
> <http://membres.id>
> INNER JOIN users_categories uc ON uc.id <http://uc.id> =
> membres.id_category
> INNER JOIN services s ON s.id <http://s.id> = su.id_service
> WHERE ((s.label = "2022 ADHESIONS" OR s.label = "2023
ADHESIONS") AND
> NOT membres.email IS NULL) OR uc.name <http://uc.name>="Membres
MAIL"
>
> ORDER BY membres.nom ASC
> LIMIT 1000
> ;