किसी अन्य तालिका के साथ पूछे गए परिणाम के बाएं जॉइन को कैसे करें? - माई एसक्यूएल

मेरे पास दो टेबल हैं DE1_0_2008_TO_2010_OUTPATIENT_CLAIMS_SAMPLE_1 तथा DE1_0_2008_BENEFICIARY_SUMMARY_FILE_SAMPLE_1 एक ही डेटाबेस में।

मुझे एक क्वेरी करनी है DE1_0_2008_TO_2010_OUTPATIENT_CLAIMS_SAMPLE_1 और फिर इस queried के बाएँ संयुक्त प्रदर्शन करते हैं"DE1_0_2008_BENEFICIARY_SUMMARY_FILE_SAMPLE_1" के साथ परिणाम। क्वेरी अकेले 1178 पंक्तियों में परिणाम देती है जो ठीक है। लेकिन मैं LEFT JOIN करने में सक्षम नहीं हूं। मैंने यह SQL क्वेरी नहीं बनाई है:

SELECT *
FROM `DE1_0_2008_TO_2010_OUTPATIENT_CLAIMS_SAMPLE_1`
LEFT JOIN DE1_0_2008_BENEFICIARY_SUMMARY_FILE_SAMPLE_1
ON DE1_0_2008_TO_2010_OUTPATIENT_CLAIMS_SAMPLE_1.DESYNPUF_ID = DE1_0_2008_BENEFICIARY_SUMMARY_FILE_SAMPLE_1.DESYNPUF_ID
WHERE DE1_0_2008_TO_2010_OUTPATIENT_CLAIMS_SAMPLE_1.ICD9_DGNS_CD_1 = 7243 OR DE1_0_2008_TO_2010_OUTPATIENT_CLAIMS_SAMPLE_1.ICD9_DGNS_CD_2 = 7243 OR DE1_0_2008_TO_2010_OUTPATIENT_CLAIMS_SAMPLE_1.ICD9_DGNS_CD_3 = 7243 OR ICD9_DGNS_CD_4 = 7243

उत्तर:

उत्तर № 1 के लिए 1

यह क्वेरी तकनीकी रूप से ठीक है।

ध्यान दें कि इसे निम्न रूप से अधिक सुरुचिपूर्ण ढंग से लिखा जा सकता है, लेकिन वास्तव में आपको विभाजन और, महत्वपूर्ण रूप से, सामान्यीकरण दोनों पर करीब से नज़र डालने की आवश्यकता है ...

SELECT *
FROM DE1_0_2008_TO_2010_OUTPATIENT_CLAIMS_SAMPLE_1 o
LEFT
JOIN DE1_0_2008_BENEFICIARY_SUMMARY_FILE_SAMPLE_1 b
ON o.DESYNPUF_ID = b.DESYNPUF_ID
WHERE 7243 IN(o.ICD9_DGNS_CD_1,o.ICD9_DGNS_CD_2,o.ICD9_DGNS_CD_3,o.ICD9_DGNS_CD_4);

संबंधित सवाल
सबसे लोकप्रिय