假设我的表中有以下行
表格行数
id 63 64 65 66 67 68
if I run the following query, I get 30 rows.
SELECT r1.id, r2,id
FROM rows AS r1
CROSS JOIN rows AS r2
WHERE r1.id!=r2.id
结果:
63 64 65 64 66 64 67 64 68 64 64 63 65 63 66 63 67 63 68 63 63 65 64 65 66 65 67 65 68 65 63 66 64 66 65 66 67 66 68 66 63 67 64 67 65 67 66 67 68 67 63 68 64 68 65 68 66 68 67 68
我怎样才能得到下面的结果而不是上面的结果?
63,64 63,65 63,66 63,67 63,68 64,65 64,66 64,67 64,68 65,66 65,67 65,68 66,67 66,68 67,68
如您所见,例如,我不想同时获得 63,64 和 64,63。
最佳答案
很简单,只加入比当前值高的值。
select r1.id, r2,id
from rows r1
cross join rows r2
where r1.id < r2.id
关于mysql交叉连接,但没有重复对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5381757/