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」にインデックスを付けます。そして、day1とday2の間で比較しようとしている列をペアで追加し続けることができます。 T1は最初の日に関連付けられたもののみを返し、T2エイリアスは2番目の日付の一致するエントリに対してのみ表示されます。
ここで、T1側にエントリがあり、問題の品質と日付に対応するT2エントリがないが、それでもそれらを表示したい場合は、JOINをLEFTJOINに変更します。