2010-01-11 5 views
1

Tableau x
x-id
userid
startdate
enddateMYSQL joindre plusieurs requêtes basées sur l'état

Tableau Y
Y-id
IDutilisateur
LoginID
startdate
enddate

Dans la table x, un utilisateur aura une seule entrée mais dans le tableau y, le même utilisateur peut avoir plusieurs entrées.

select * from x-id où enddate ENTRE DATE (CURDATE()) ET DATE_ADD (CURDATE(), INTERVALLE 7 JOUR)

Dans cette requête, je dois vérifier avec table x enddate entre prochain 7 jours si aucune entrée dans le tableau y. Mais s'il existe une entrée dans la table y j'ai besoin de vérifier la date de fin pour la dernière entrée de la table y au lieu de x Comment faire cela?

Répondre

1
SELECT x.* 
FROM x 
LEFT JOIN 
     y 
ON  y.userid = x.userid 
GROUP BY 
     x.id 
HAVING COALESCE(MAX(y.enddate), x.enddate) BETWEEN CURDATE() AND CURDATE() + INTERVAL 7 DAY 
Questions connexes