Bonjour,
MySQL 5.0.51a
J'ai une table qui en gros contient les infos suivantes (OBJET [CHAINE],DATE D AJOUT [DATE]).
Chaque jour des objets sont insérés et je voudrai savoir quel objets ont été inséré la veille mais pas le jour courant.
En gros mes objet insérés hier minus mes objets insérés aujourd'hui. En regardant la donc mysql j'ai vu que le minus n'existait pas (oui je decouvre mysql) du coups j'ai voulu le faire à base de jointure externe avec clé à droite = nulle. Solution qui fonctionnellement revient au meme.
Mon problème est que ma requête ne me renvoie pas le resultat escompté, et que j'ai l'impression que ma condition WHERE CLE DE MA TABLE A DROITE IS NULL ne fonctionne pas comme une condition post jointure comme sur oracle par exemple.
En élagant ma requete je suis tombé sur ce cas que je trouve bizarre.
Mes conditions pre jointure sur la date contenue dans ma table devrait me permettre de filtrer les bonnes date pour VEILLE et JOUR mais je tombe sur le résultat suivant alors que je ne devrait avoir que la date de sysdate -1 jour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT DISTINCT VEILLE.MA_DATE FROM TABLE_A VEILLE LEFT OUTER JOIN TABLE_A JOUR ON JOUR.REF = VEILLE.REF AND date_format( JOUR.MA_DATE, '%Y%m%d' ) = date_format( sysdate( ) , '%Y%m%d' ) AND date_format( VEILLE.MA_DATE, '%Y%m%d' ) = date_format( SUBDATE( sysdate( ) , 1 ) , '%Y%m%d' )Avez vous une idée de la ou je me suis planté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 2011-10-05 2011-10-06
Merci d'avance
Partager