现求一SQL语句,列出所有可能的组合

jnnxwjh 2010-11-01 01:25:17
ID obj data
1 a 1
2 b 1
3 c 1
4 a 2
5 b 2
6 c 2
7 a 3
8 b 3
9 c 3
10 a 4
11 b 4
12 c 4
13 a 5
14 b 5
15 c 5


数据表如下所示,其中ID为自动增量,obj为对象编码,data是可用数据。现要求所有不同对象obj为一组(本例中为a、b、c),要求其对应的data组成连续的数据串,如:ID(1,5,9)/obj(a,b,c)/data(1,2,3),又如ID(8,10,15)/obj(b,a,c)/data(3,4,5)。现求一SQL语句,列出所有可能的组合。
...全文
187 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2010-11-02
  • 打赏
  • 举报
回复
1、2、3
3、2、1都算?
SELECT a.data,b.data,c.data
FROM (qt2 AS a LEFT JOIN qt2 AS b ON (a.data=b.data-1) AND (a.obj<>b.obj)) LEFT JOIN qt2 AS c ON (b.data=c.data-1) AND (c.obj<>b.obj) where b.data is not null and c.data is not null
union


SELECT a.data,b.data,c.data
FROM (qt2 AS a LEFT JOIN qt2 AS b ON (a.data=b.data+1) AND (a.obj<>b.obj)) LEFT JOIN qt2 AS c ON (b.data=c.data+1) AND (c.obj<>b.obj)
where b.data is not null and c.data is not null
jnnxwjh 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ymhtt 的回复:]
我理解是data的值连续的 如1,2,3;2,3,4;3,4,5 等等
[/Quote]

谢谢各位,我想得到的结果如ymhtt所述.
ymhtt 2010-11-01
  • 打赏
  • 举报
回复
我理解是data的值连续的 如1,2,3;2,3,4;3,4,5 等等
wwwwb 2010-11-01
  • 打赏
  • 举报
回复
他要求data连续:
1、5、9是连续的?还是1、2、3?详细说明
ymhtt 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 acmain_chm 的回复:]
SQL code
select *
from table1 a ,table1 b ,table1 c
where a.obj != b.obj and b.obj != c.obj and c.obj != a.obj
[/Quote]

他要求data连续
ACMAIN_CHM 2010-11-01
  • 打赏
  • 举报
回复
select *
from table1 a ,table1 b ,table1 c
where a.obj != b.obj and b.obj != c.obj and c.obj != a.obj
ymhtt 2010-11-01
  • 打赏
  • 举报
回复
SELECT concat('ID(',a.id,',',b.id,',',c.id,')/obj(',a.obj,',',b.obj,',',c.obj,')/data(',a.data,',',b.data,',',c.data,')')
FROM 表名 a , 表名 b,表名 c where a.obj<>b.obj and b.obj<>c.obj and a.obj<>c.obj and a.data=b.data-1 and b.data=c.data-1;

试试这个

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧