【问题标题】:how to choose distinct values from the pairs of names in sql?如何从sql中的名称对中选择不同的值?
【发布时间】:2021-05-27 05:07:44
【问题描述】:

表 f 有这些值:

name1           name2           count
Harrison Ford   Mullah Omar     3
Harrison Ford   Michael Caine   6
Michael Caine   Mullah Omar     2
Michael Caine   Harrison Ford   6
Mullah Omar     Michael Caine   2
Mullah Omar     Harrison Ford   3

如何只选择不同的对?

select 
distinct name1, 
distinct name2, count from f group by name1

【问题讨论】:

  • 编辑你的问题和你的结果。

标签: mysql sql distinct-values


【解决方案1】:

鉴于每对都有一个副本,您可以使用:

select f.*
from f
where name1 < name2;

如果您在所有情况下都没有相反的情况,您可以使用:

select f.*
from f
where f.name1 < f.name2 or
      not exists (select 1 
                  from f f2
                  where f2.name1 = f.name2 and f2.name2 = f.name1
                 );

【讨论】:

  • 嗯,我在某处读到 name1 != name2 不是好东西,我应该使用 name1
  • @ERJAN 。 . .在这种情况下,它可以防止这种“反向”重复。
猜你喜欢
  • 1970-01-01
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 2020-01-24
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
相关资源
最近更新 更多