gpt4 book ai didi

mysql - 如何避免在 MySQL 中导致对称结果的自连接?

转载 作者:行者123 更新时间:2023-11-29 11:25:12 24 4
gpt4 key购买 nike

我正在查找同一个表中彼此相距不超过 2 周的记录,如下所示:

    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 |

要么是我的连接方式不好,导致了这种重复的结构,要么是连接没问题,但我需要某种方法来删除手性记录。谁能告诉我如何继续?

最佳答案

添加:

a.Value < b.Value

WHERE 子句。

或者,更好的是,如果您有主键(并且所有表都应该有主键):

a.pk < b.pk

关于mysql - 如何避免在 MySQL 中导致对称结果的自连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38340576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com