讨教两个字段笛卡尔积后,假如去掉重复字段

MySql 码拜 8年前 (2016-07-12) 1382次浏览
例如有个表 T ( name String )
表T的数据有
name

A
B
C
本人想要的结果是
name1     name2

A                   B
A                   C
B                   C
本人想到的是表T先做笛卡尔积,但是笛卡尔积后有重复的,如下
select a.name name1, b.name name2
from T a,T b
where a.name<>b.name
这样的结果是
name1     name2

A                   B
A                   C
B                   C
B                   A
C                   A
C                   B
讨教下,假如才能实现本人想要的结果?
解决方案

20

表T增加一列自增ID,1:A,2:B,3:C,  每次只与比本人ID大的元素组合
ex:
select  *  from T a  join T b  ON a.id< b.id

30

select a.name name1, b.name name2
from T a,T b
where a.name<b.name

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教两个字段笛卡尔积后,假如去掉重复字段
喜欢 (0)
[1034331897@qq.com]
分享 (0)