0
私のような、同じテーブルで、お互いの2週間以内のレコードを探していました:MySQLで対称的な結果になる自己結合を避けるには?
SELECT stuff
FROM mytable AS a
JOIN mytable AS b
ON a.ID = b.ID
WHERE
(
a.Date = b.Date
OR
a.Date BETWEEN DATE_SUB(b.Date, INTERVAL 14 DAY) AND DATE_ADD(b.Date, INTERVAL 14 DAY)
OR
b.Date BETWEEN DATE_SUB(a.Date, INTERVAL 14 DAY) AND DATE_ADD(a.Date, INTERVAL 14 DAY)
)
;
それがうまく働いたが、今、私はこのタイプの構造を持つ結果があります。
を| ID | a.Date | b.Date | a.Value | b.Value |
|----|------------|------------|---------|---------|
| 1 | 2016-01-01 | 2016-01-02 | foo | bar |
| 1 | 2016-01-02 | 2016-01-01 | bar | foo |
私はこの重複した構造につながっている悪い方法で私の結合を行った、または結合は大丈夫ですが、キラルなレコードを削除するには何らかの方法が必要です。誰でも進める方法について私にアドバイスできますか?