Bonjour,
Mon problème est le suivant:
Voici mes tables (simplifiées pour la compréhension) :
message (idmessage, idutil, message, dateMessage, lu)
visites (idvisitant, idvisité, vu)
util (idutil, recevoirMail)
Je souhaite envoyer un e-mail pour les membres qui ont choisi de recevoir le mail le nombre de message et de visite UNIQUEMENT s'ils ont au moins un message ou une visite.
J'aimerais faire une seule requête pouvant récupérer ces informations.
ce qui fonctionne actuellement serait ceci :
Puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT count(*) as nbMessage, u.idutil FROM util as u INNER JOIN message as m ON u.idutil = m.idutil AND m.lu = 0 -- uniquement les messages non lu WHERE u.recevoirMail = 1 GROUP BY u.idutil;
Avez vous une idée pour fusionner les deux requêtes? Un LEFT JOIN serait-il trop gourmand en ressources?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT count(*) as nbVisites, u.idutil FROM util as u INNER JOIN visites as v ON u.idutil = v.idvisité AND v.vu = 0 WHERE u.recevoirMail = 1 GROUP BY u.idutil;
Merci par avance
Partager