Du får duplikerede kolonner, fordi som du har det, forespørger du fra T1 OG T2. Så medmindre du udtrykkeligt siger vis mig kun T1.*, vil det fange kolonner fra BEGGE tabelaliasreferencer.
Da din forespørgsel laver en OR på datoerne, vil du sandsynligvis også få et kartesisk resultat.
Nu kender du din tabelstruktur, men du er måske bedre med en eksplicit forespørgsel, noget som...
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'
Hav et indeks på din "my_table" baseret på (dag, kvalitet) for at optimere forespørgslen. Og du kan bare fortsætte med at tilføje parvis, de kolonner, du forsøger at sammenligne mellem dag1 og dag2. T1 returnerer kun dem, der er knyttet til den første dag, og T2-aliaset vises kun for matchende poster for den anden dato.
Nu, hvis der kun er poster på T1-siden uden en tilsvarende T2-indgang for den pågældende kvalitet og dato, men du stadig vil se dem, så skal du bare ændre JOIN til en LEFT JOIN.