नहीं, यह ठीक है। यह दुर्लभ मामलों में से एक है जब आप DISTINCT
. का उपयोग करना चाहते हैं डुप्लीकेट हटाने के लिए मुख्य शब्द।
इस मामले में यह इस तथ्य से उचित है कि क्वेरी का तर्क सही है, भले ही यह एक से अधिक पंक्तियाँ लौटाता हो। कई बार कोई DISTINCT
. का उपयोग देख सकता है जब वास्तव में क्वेरी का तर्क गलत है।
साइड-नोट:
- तालिका संदर्भ पर कोई भी फ़िल्टर जिसका उपयोग आप
WHERE
. में कर रहे हैंIS NULL/IS NOT NULL
. के अलावा अन्य क्लॉज कोई भीLEFT JOIN
इसी तालिका संदर्भ परINNER JOIN
. की ओर मुड़ें , अंतिम परिणामसेट व्यवहार के लिए। (इसे देखें:https://stackoverflow.com/a/15483895/1291428 ) -
आपको
GROUP BY
. का उपयोग नहीं करना चाहिएDISTINCT
. के प्रभाव का अनुकरण करने के लिए , 2 कारणों से:1/यह सिर्फ उद्देश्य नहीं है।
GROUP BY
. के प्रभावों में से एक डुप्लिकेट को खत्म करना है, लेकिन इसका मुख्य उद्देश्य पंक्तियों को एक निश्चित मानदंड के अनुसार समूहित करना है, ताकि उन पर कुछ विश्लेषणात्मक गणना/संचालन लागू किया जा सके।2/
GROUP BY
साथ हीORDER BY
परिणाम (mysql में), जो जरूरी नहीं कि आप क्या चाहते हैं और उस स्थिति में निष्पादन को धीमा कर देता है। कृपया, इंजन जो प्रदान कर रहे हैं उसका उचित उपयोग सुनिश्चित करें, जो आगे की संगतता के दृष्टिकोण से हमेशा बेहतर होता है। (यह अनुमान लगाते हुए कि आप जो प्रदान करते हैं वह वास्तव में नहीं है)
सादर।