【问题标题】:Transitive sets in MySQL [closed]MySQL中的传递集[关闭]
【发布时间】:2020-10-23 05:45:38
【问题描述】:

如果 y1= x2 和 x3 =x1 和 y3 = y2,则三对集合 { (x1,y1),(x2,y2),(x3,y3)} 被称为是可传递的。

编写查询以输出所有此类传递集。

【问题讨论】:

  • 我想看看 PRIMARY KEY。
  • 没有主键。这是我的任务。它让我发疯。我已经玩了好几个小时了。

标签: mysql sql join inner-join


【解决方案1】:

我认为这是一系列连接。您可以使用row_number() 生成主键。您的要求翻译为:

with data as (select t.*, row_number() over(order by null) rn from mytable t)
select
from data d1
inner join data d2 
    on  d2.x  =  d1.y 
    and d2.rn <> d1.rn
inner join data d2 
    on  d3.x  =  d1.x 
    and d3.y  =  d2.y
    and d3.rn <> d2.rn 
    and d3.rn <> d1.rn

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    相关资源
    最近更新 更多