j'ai pris une table comme celui-ciMySQL ont besoin d'aide .. Comment puis-je filtrer max (date)
[tableau a]
UID | UNAME
------------------
001 | a
002 | b
003 | c
[table b]
UID | LOGS
----------------------
001 | 2009/08/01
001 | 2009/08/03
003 | 2009/08/02
et je veux avoir une requête comme celle-ci
UID | LASTLOG
--------------------
001 | 2009/08/03
002 |
003 | 2009/08/02
ce résultat, je l'ai déjà fait, mais j'ai fait face à un problème alors que je veux ajouter un filtre lastlogin, supposé si je suis entré dans le filtre pour montrer tous les utilisateurs qui ont lastlogin avant '2009/08/03 ', je veux un résultat comme celui-ci
UID | LASTLOG
--------------------
003 | 2009/08/02
qui éliminent UID 001 car 001 a lastlogin à 2009/08/03
i utiliser la commande SQL comme ce
SELECT a.uid, max(logs.date)
FROM user a LEFT JOIN logs ON (a.uid = logs.uid)
where max(logs.date)<'2009/08/03'
group by a.uid
comment puis-je ajouter un filtre pour afficher uniquement max . (logs.date) avant 03/08/2009, parce que la ligne 3 « où max (logs.date) < 'de 03/08/2009' provoque une erreur groupe invalide par fonction grâce
Y'a-t-il eu des résultats sans erreur, mais l'UID 001 avec lastlogin 2009/08/03 apparaît toujours .. avait une déclaration ne pas faire de filtrage? –
Puisque vous utilisez une chaîne pour représenter la date, et pas le type de date prédéfini de MySQL, il y a peut-être un espace à la fin de la chaîne '2009/08/03'? ('2009/08/03' est techniquement supérieur à '2009/08/03') – VoteyDisciple
ohmygosh .. thx, il résolu! J'ai utilisé la variable de type date mais à propos d'un délimiteur. mysql ne pas utiliser '/' mais '-' lol .. tq tous les gars =) –