2012-12-18 2 views
-2

J'ai besoin d'aide pour modifier ma requête,Besoin de modifier ma requête mysql?

My db records

SELECT * FROM (
     SELECT t1.eventId,t1.start_date,t1.end_date, COUNT(*) pos FROM events t1 
     LEFT JOIN events t2 ON t1.start_date = t2.start_date AND t1.eventId <= t2.eventId 
     WHERE t1.start_date BETWEEN '2012-12-18' AND '2012-12-24' 
     GROUP BY 
     t1.eventId,t1.start_date 
     ORDER BY 
     t1.start_date,pos ASC 
    ) t 
    WHERE 
     pos <= 3; 

enter image description here

POURQUOI date de début 21/12/2012 et 24/12/2012 n'existe pas,

si start_date n'existe pas alors, j'ai besoin d'une valeur nulle ou vide pour

merci i advanc e

REMARQUE: aucun enregistrement pour 21 et 24 .. dans mon DB mais j'ai besoin d'une valeur vide dans ma requête

+0

peut être position nulle ou> 3 .. –

+0

pas son problème ... pas –

+0

pouvez-vous poser une capture d'écran de la structure de votre table? Je suppose que ypi utilise 'datetime' ou' timestamp' et que vous autorisez des valeurs nulles? – Mawg

Répondre

1
SELECT * FROM (
     SELECT t1.eventId,t1.start_date,t1.end_date, COUNT(*) pos FROM events t1 
     LEFT JOIN events t2 ON t1.start_date = t2.start_date AND t1.eventId <= t2.eventId 
     WHERE t1.start_date BETWEEN '2012-12-18' AND '2012-12-24' 

     OR t1.start_date IS NULL -- <<< I assume this is what you want... 

     GROUP BY 
     t1.eventId,t1.start_date 
     ORDER BY 
     t1.start_date,pos ASC 
    ) t 
    WHERE 
     pos <= 3;