मेरे पास तीन टेबल हैं: घर, मतदाता, दरवाज़े की दस्तक

प्रत्येक घर से कई मतदाता जुड़े हो सकते हैं। प्रत्येक घर में इससे जुड़े कई दरवाजे भी हो सकते हैं।

मैं एक घर में सभी मतदाताओं को एक साथ खींचने की कोशिश कर रहा हूं और पिछले दरवाजे की तारीख को दरवाजे_नॉक टेबल से खींचने की कोशिश कर रहा हूं और मुझे उचित क्वेरी सिंटैक्स का पता लगाने में परेशानी हो रही है। यहाँ मेरा नवीनतम प्रयास है:

SELECT households.hh_id, voters.id
FROM households
INNER JOIN voters ON households.hh_id = voters.hh_id
INNER JOIN ( SELECT MAX(dk.date), dk.hh_id FROM door_knocks dk GROUP BY dk.date) dks
ON dks.hh_id = households.hh_id
WHERE households.street = ?

हालाँकि, उपरोक्त क्वेरी प्रत्येक दरवाजे की दस्तक के लिए एक परिणाम खींचती है। मुझे बस आखिरी दरवाजे की दस्तक की तारीख चाहिए।

1
StevieD 25 सितंबर 2017, 22:51

1 उत्तर

सबसे बढ़िया उत्तर

तो, ऐसा लगता है जैसे आप अवधारणात्मक रूप से उम्मीद कर रहे हैं वह एक तालिका है जो प्रत्येक परिवार के लिए दस्तक की आखिरी तारीख सूचीबद्ध करती है। आप उस तालिका के खिलाफ शामिल होना चाहते हैं और इसे मतदाताओं और परिवारों के साथ जोड़ना चाहते हैं।

आपकी क्वेरी क्या करती है आपको सभी तिथियों की एक तालिका (dk.date के अनुसार समूह) और प्रत्येक तिथि के लिए सभी घरों की सूची देती है।

यदि आप इसके बजाय hh_id द्वारा समूहित करते हैं, तो आपको प्रत्येक दिए गए घर के लिए अधिकतम तिथि मिल जाएगी।

SELECT households.hh_id, voters.id, dks.max_date
FROM households
INNER JOIN voters ON households.hh_id = voters.hh_id
INNER JOIN ( SELECT MAX(dk.date) as max_date, dk.hh_id FROM door_knocks dk GROUP BY dk.hh_id dks
ON dks.hh_id = households.hh_id
WHERE households.street = ?
1
Sam Hartman 25 सितंबर 2017, 23:05
आह, बिल्कुल! हालांकि, मुझे एक और समस्या हो रही है। वास्तविक तिथि परिणाम में दिखाई नहीं देती है। जब मैं क्वेरी के पहले भाग में dk.date, dks.date, या doork_knocks.date डालने का प्रयास करता हूं, तो मुझे अज्ञात कॉलम मिलता है।
 – 
StevieD
25 सितंबर 2017, 23:03
1
उत्तर अपडेट किया गया अगर यह आपके प्रश्न का उत्तर देता है तो कृपया उत्तर स्वीकार करें
 – 
Sam Hartman
25 सितंबर 2017, 23:05
मार्गदर्शन के लिए धन्यवाद। एक और मुद्दा सामने आया जिसे मैंने अभी देखा। मैं उन घरों को शामिल करना चाहता हूं, जिनमें कोई प्रविष्टि नहीं है, डोर नॉक टेबल में। एक लेफ्ट जॉइन इसे ठीक करेगा? मैं इसका परीक्षण करूंगा लेकिन मैं अभी अपने मोबाइल पर हूं।
 – 
StevieD
26 सितंबर 2017, 00:50