आपको डुप्लिकेट कॉलम मिल रहे हैं क्योंकि जैसा आपके पास है, आप T1 और T2 से क्वेरी कर रहे हैं। तो जब तक आप स्पष्ट रूप से नहीं कहते कि मुझे केवल T1 दिखाओ। * यह दोनों तालिका उपनाम संदर्भों से कॉलम प्राप्त करेगा।
चूंकि आपकी क्वेरी तारीखों पर OR कर रही है, इसलिए संभवतः आपको कार्टेशियन परिणाम भी मिलने वाला है।
अब आप अपनी टेबल संरचना को जानते हैं, लेकिन आप एक स्पष्ट क्वेरी के साथ बेहतर हो सकते हैं जैसे...
SELECT
t1.day,
t2.day as OtherDay,
t1.quality,
t1.anotherColumn,
t2.OtherAnotherColumn,
t1.thirdColumn,
t2.OtherThirdColumn
FROM
my_table t1
join my_table t2
on t1.quality = t2.quality
AND t2.day = '2015-01-09'
where
t1.day = '2015-01-08'
क्वेरी को ऑप्टिमाइज़ करने के लिए (दिन, गुणवत्ता) के आधार पर अपने "my_table" पर एक इंडेक्स रखें। और आप केवल जोड़े में जोड़ना जारी रख सकते हैं, जिन स्तंभों की आप दिन 1 और दिन 2 के बीच तुलना करने का प्रयास कर रहे हैं। T1 केवल पहले दिन से जुड़े लोगों को लौटाएगा, और T2 उपनाम केवल दूसरी तारीख के लिए मिलान प्रविष्टियों के लिए दिखाई देगा।
अब, यदि केवल T1 पक्ष में ऐसी प्रविष्टियाँ हैं जिनमें गुणवत्ता और दिनांक के लिए कोई संगत T2 प्रविष्टि नहीं है, लेकिन आप अभी भी उन्हें देखना चाहते हैं, तो बस JOIN को LEFT JOIN में बदलें।