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 :
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;
Puis
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;
Avez vous une idée pour fusionner les deux requêtes? Un LEFT JOIN serait-il trop gourmand en ressources?

Merci par avance