मैं # 1060 क्यों मिलता - डुप्लीकेट कॉलम नाम 'आईडी'# 1060 - डुप्लीकेट कॉलम नाम 'आईडी'
SELECT COUNT(*) FROM (SELECT * FROM `tips` `t` LEFT JOIN
tip_usage ON tip_usage.tip_id=t.id GROUP BY t.id) sq
मैं # 1060 क्यों मिलता - डुप्लीकेट कॉलम नाम 'आईडी'# 1060 - डुप्लीकेट कॉलम नाम 'आईडी'
SELECT COUNT(*) FROM (SELECT * FROM `tips` `t` LEFT JOIN
tip_usage ON tip_usage.tip_id=t.id GROUP BY t.id) sq
शायद क्योंकि select *
में * tip_usage
और tips
से ही नाम के दो स्तंभों का चयन करता है।
... और "सबक्वायरी चयन सूची में कोई भी कॉलम [होना चाहिए] (http: // dev .mysql.com/डॉक्टर/refman/5.7/en/from-clause-subqueries.html) अद्वितीय नाम। " –
शायद ऐसा इसलिए है क्योंकि आंतरिक चयन id
नाम के साथ दो कॉलम उत्पन्न करता है। जब से तुम उन स्तंभों का उपयोग नहीं कर रहे हैं, तो आप सिर्फ करने के लिए चयन बदल सकते हैं:
SELECT COUNT(*) FROM (SELECT t.id FROM `tips` `t`
LEFT JOIN tip_usage ON tip_usage.tip_id=t.id
GROUP BY t.id) sq
आपकी क्वेरी इस के बराबर है:
SELECT COUNT(DISTINCT id)
FROM tips
, एक में शामिल होने में कोई जरूरत नहीं है।
क्या आप वाकई INNER JOIN
नहीं चाहते थे?
क्या आप जानते हैं, चूंकि यह एक बाएं शामिल है, इसलिए शामिल तालिका में पंक्तियां COUNT (*) द्वारा लौटाई गई पंक्तियों की संख्या को प्रभावित नहीं करती हैं? आप सुझावों से 'COUNT चुनें (*)' – Mchl
नहीं कर सकते हैं! रुको! ... एक समूह है ... लेकिन कोई समेकित कार्य नहीं ... इस क्वेरी को कोई समझ नहीं आता है। – Mchl
'टिप्स' पर 'id' 'प्राथमिक कुंजी' है? यदि आपके पास 'tip_usage' में किसी टिप के लिए रिकॉर्ड नहीं है, तो क्या इस टिप की गणना की जानी चाहिए? – Quassnoi