基于不同行的带条件的MySQL查询

基于不同行的带条件的MySQL查询,mysql,sql,Mysql,Sql,我有一张有星星尺寸的桌子。每行(即测量值)包含恒星的ID及其周期 比如说: Star_ID Period 1 3.6 1 3.9 2 4.11 2 4.12 2 8.5 3 7.1 4 1.31 4 1.32 我想写一个查询,只返回具有“闭合”周期测量值的恒星的星号:包含满足P1-P2

我有一张有星星尺寸的桌子。每行(即测量值)包含恒星的ID及其周期

比如说:

Star_ID  Period
1        3.6
1        3.9
2        4.11
2        4.12
2        8.5
3        7.1
4        1.31
4        1.32
我想写一个查询,只返回具有“闭合”周期测量值的恒星的星号:包含满足P1-P2 有人能帮我吗


非常感谢:)

一种方法是使用自连接和聚合:

select t.star_id
from stars t join
     stars t2
     on t.star_id = t2.star_id and t.period <> t2.period
group by t.star_id
having min(abs(t.period - t2.period)) < 0.02;
选择t.star\u id
从天上掉下来的星星不会加入
星星t2
在t.star\u id=t2.star\u id和t.period t2.period上
按t.star\U id分组
最小值(abs(t周期-t2周期))小于0.02;

注意:这将忽略两个重复的行(差值为0)。

因此您可以从编写查询开始,如果查询不起作用,请向您的查询寻求帮助,以便!==自由查询编码显然我错了,所以===这里编码的自由查询同一个星不能有两个相同的周期,对吗?@Amr Magdy-对