आप अपनी इच्छित सभी तिथियों के लिए MySQL चर का उपयोग करके एक स्वचालित परिणाम सेट बना सकते हैं।
select
AllDaysYouWant.MyJoinDate,
count( U.User_ID ) as NumberJoined
from
( select
@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate
from
( select @curDate := '2012-11-21' ) sqlvars,
Users
limit 18 ) AllDaysYouWant
LEFT JOIN Users U
on AllDaysYouWant.MyJoinDate = U.User_JoinDate
group by
AllDaysYouWant.MyJoinDate
आंतरिक प्रश्न, मैं बिना किसी कुंजी के उपयोगकर्ता तालिका में शामिल हो रहा हूं, इसलिए इसका उपयोग केवल आपके इच्छित दिन की अवधि का प्रतिनिधित्व करने के लिए एक्स संख्या रिकॉर्ड के माध्यम से चक्र के लिए किया जाता है ... यह 30, 100 हो सकता है, जो भी हो .... बस जब तक तालिका (इस मामले में उपयोगकर्ता) में उतने रिकॉर्ड हैं जितने आप उम्मीद कर रहे हैं।
फिर, कुछ नहीं बल्कि दिनों का परिणाम उपयोगकर्ता तालिका में शामिल हो गया है, लेकिन इस बार, उपयोगकर्ता के JOIN_DATE के आधार पर। सरल COUNT() आपको वह प्राप्त करना चाहिए जो आप चाहते हैं।
"AllDaysYouWant"
. की आंतरिक प्रथम भाग क्वेरी को असाइन किया गया उपनाम है ( select
@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate
from
( select @curDate := '2012-11-21' ) sqlvars,
Users
limit 18 ) AllDaysYouWant
यह मूल रूप से बताता है ... उपयोगकर्ता तालिका से (लेकिन कोई भी हो सकता है), मुझे डेटा की 18 पंक्तियाँ दें (सीमा के माध्यम से, लेकिन लगभग किसी भी संख्या में रिकॉर्ड हो सकते हैं, लेकिन आपको केवल 22 नवंबर से 6 दिसंबर तक की आवश्यकता है, जो कि केवल 14 दिन, लेकिन मैंने केवल सिद्धांत के लिए 18 किया, यह लगभग कुछ भी हो सकता है। उपयोगकर्ता तालिका के ऊपर है (चयन @curDate:='2012-11-21' ) sqlvars। किसी क्वेरी के भीतर कोई भी चयन कथन जो कोष्ठक में लपेटा गया है तालिका स्रोत को एक उपनाम दिया जाना चाहिए और चूंकि यह केवल एक चर है जिसका मैं उपयोग कर रहा हूं, इसकी परवाह नहीं है कि इसका नाम क्या है। इसलिए, यह क्वेरी 21 नवंबर को चर शुरू करती है और चुनें @curDate:=Date_Add... blah blah में @curDate का वर्तमान मान लेने के लिए कहा गया है, इसमें 1 दिन जोड़ें (अब 22 नवंबर हो जाता है) और इसे "MyJoinDate" लौटाई गई पंक्ति में संग्रहीत करें। तो अब, यह आंतरिक क्वेरी 22 नवंबर से जाने वाली तारीखों की आपकी तालिका बनाती है। अग्रेषित करने के लिए 18 दिनों का डेटा और शेष क्वेरी के लिए उपनाम "AllDaysYouWant" है।
मैंने उस क्वेरी को समायोजित कर लिया है जो शायद आपने सामना किया था, उपनाम के लिए। स्पष्टीकरण के लिए सब कुछ फ़ील्ड करें...