Anda mendapatkan kolom duplikat karena seperti yang Anda miliki, Anda meminta dari T1 DAN T2. Jadi, kecuali jika Anda secara eksplisit mengatakan tunjukkan hanya T1.* itu akan mengambil kolom dari KEDUA tabel alias referensi.
Karena kueri Anda melakukan OR pada tanggal, Anda mungkin akan mendapatkan hasil Cartesian juga.
Sekarang mengetahui struktur tabel Anda, tetapi Anda mungkin lebih baik dengan kueri eksplisit seperti...
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'
Miliki indeks pada "my_table" Anda berdasarkan (hari, kualitas) untuk mengoptimalkan kueri. Dan Anda bisa terus menambahkan berpasangan, kolom yang Anda coba bandingkan antara hari1 dan hari2. T1 hanya akan mengembalikan yang terkait dengan hari pertama, dan alias T2 hanya akan ditampilkan untuk entri yang cocok untuk tanggal kedua.
Sekarang, jika hanya ada entri di sisi T1 tanpa entri T2 yang sesuai untuk kualitas dan tanggal yang bersangkutan, tetapi Anda masih ingin melihatnya, maka cukup ubah GABUNG menjadi GABUNG KIRI.