मैं 3 टेबल है:दो एसक्यूएल वाम कार्यभार संभाला गलत परिणाम उपज
users(id, account_balance)
grocery(user_id, date, amount_paid)
fishmarket(user_id, date, amount_paid)
दोनों fishmarket
और grocery
टेबल अलग तिथियों और राशियों के साथ एक ही user_id के लिए अनेक गतिविधियां है या किसी भी उपयोगकर्ता के लिए कुछ भी नहीं हो सकता है ।
SELECT
t1."id" AS "User ID",
t1.account_balance AS "Account Balance",
count(t2.user_id) AS "# of grocery visits",
count(t3.user_id) AS "# of fishmarket visits"
FROM users t1
LEFT OUTER JOIN grocery t2 ON (t2.user_id=t1."id")
LEFT OUTER JOIN fishmarket t3 ON (t3.user_id=t1."id")
GROUP BY t1.account_balance,t1.id
ORDER BY t1.id
यह एक गलत परिणाम का उत्पादन: जब मैं निम्न क्वेरी कोशिश "1", "12", "12"
।
लेकिन जब मैं LEFT JOIN
को केवल एक तालिका में करने का प्रयास करता हूं तो यह grocery
या fishmarket
विज़िट के लिए सही परिणाम उत्पन्न करता है, जो "1", "3", "4"
हैं।
मैं यहाँ क्या गलत कर रहा हूं?
मैं PostgreSQL 9.1 का उपयोग कर रहा हूं।
वास्तव में इस सवाल का जवाब सिर्फ एक समाधान देने नहीं करने पर बधाई। – xception
इस [लिंक] में कार्य कोड (http://rextester.com/ZFFE32806)। – HeyJude
@ErwinBrandstetter मैंने आपकी पोस्ट से पोस्टग्रेस के बारे में बहुत कुछ सीखा है। क्या आपने कभी इस विषय पर एक पुस्तक लिखने पर विचार किया है? –