Du får duplicerade kolumner eftersom du, som du har det, frågar från T1 OCH T2. Så om du inte uttryckligen säger visa mig bara T1.* kommer det att ta kolumner från BÅDA tabellaliasreferenser.
Eftersom din fråga gör en ELLER på datumen kommer du förmodligen också att få ett kartesiskt resultat.
Nu känner du till din tabellstruktur, men du kanske är bättre med en explicit fråga i stil med...
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'
Ha ett index på din "my_table" baserat på (dag, kvalitet) för att optimera frågan. Och du kan bara fortsätta lägga till i par, kolumnerna du försöker jämföra mellan dag1 och dag2. T1 returnerar bara de som är kopplade till den första dagen, och T2-aliaset visas endast för matchande poster för det andra datumet.
Om det nu bara finns poster på T1-sidan utan motsvarande T2-post för kvaliteten och datumet i fråga, men du fortfarande vill se dem, ändra bara JOIN till en LEFT JOIN.