के साथ MySQL LEFT जॉइन में शामिल हैं मेरे पास प्रति दिन कुछ आंकड़ों के साथ एक तालिका है, जिसे मैं MySQL के साथ सूचीबद्ध करना चाहता हूं। कुछ तिथियों के लिए वहाँ, कोई आंकड़े नहीं पड़ेगा, इसलिए परिणाम कुछ इस तरह दिखना चाहिए:
2013-03-01: 3
2013-03-02: 2
2013-03-03: 0
2013-03 -04: 1ग्रुप बाय और जहां (उप क्वेरी)
मुझे पता चला कि 0 -zero के साथ अंतराल में भरना- सभी संभावित तिथियों और बाएं जॉइन के साथ एक अलग तालिका के साथ हल किया जा सकता है। अब तक सब ठीक है।
आंकड़े (इंप्रेशन) तालिका 'campaigndata' में है:
id - int(11) date - date campaignid - int(11) impressions - int(11)
लेकिन मैं केवल आंकड़ों के कुछ प्राप्त करना चाहते हैं। अधिक विशिष्ट होने के लिए, मुझे केवल 'campaigndata' से पंक्तियां चाहिए, जहां 'campaignid' तालिका 'campaignfilter' में 'campaigntype' के साथ सेट 1 (उदाहरण के रूप में) है।
इस तालिका में 'campaignfilter' है:
id - int(11) campaigntype - int(11) campaignid - int(11)
कोई भी सुराग है यह कैसे किया जा सकता है?
पीएस: तालिका 'कैंपिगेंडटा' की संरचना काफी लॉक है, क्योंकि यह बाहरी प्रणाली से स्वचालित आयात पर आधारित है।
नमूना रिकॉर्ड्स
CREATE TABLE demo_campaigndata (
id int(11) NOT NULL AUTO_INCREMENT,
date date NOT NULL,
campaignid int(11) NOT NULL,
impressions int(11) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO demo_campaigndata (id, date, campaignid, impressions) VALUES
(1, '2013-03-03', 1, 100),
(2, '2013-03-03', 2, 100),
(3, '2013-03-03', 3, 100),
(4, '2013-03-04', 2, 100),
(5, '2013-03-05', 1, 100),
(6, '2013-03-05', 2, 100);
CREATE TABLE demo_campaignfilter (
id int(11) NOT NULL AUTO_INCREMENT,
campaigntype int(11) NOT NULL,
campaignid int(11) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO demo_campaignfilter (id, campaigntype, campaignid) VALUES
(1, 1, 1),
(2, 1, 3);
CREATE TABLE demo_calendar (
date date NOT NULL,
PRIMARY KEY (date)
);
INSERT INTO demo_calendar (date) VALUES
('2013-03-01'),
('2013-03-02'),
('2013-03-03'),
('2013-03-04'),
('2013-03-05');
वांछित परिणाम
2013-03-01: 0
2013-03-02: 0
2013-03-03: 200
2013-03-04: 0
2013-03-05: 100
मैं माफी चाहता हूँ, कि काम करने के लिए प्रतीत नहीं होता। मैं एसयूएम (ए। इंप्रेशन) चाहता हूं, COUNT नहीं (b.campaignid)। – sylling
क्या आप वांछित परिणाम के साथ नमूना रिकॉर्ड दे सकते हैं? –
वांछित परिणाम और नमूना रिकॉर्ड: http://pastie.org/6440022 – sylling