假设表格看起来像
col1 col2
---- ----
1 a
2 a
3 a
4 b
5 b
6 b
我希望从col1获取col2中每个值的所有对,意味着结果应如下所示:
col1a col1b col2
---- ----- ----
1 2 a
1 3 a
2 3 a
4 5 b
4 6 b
5 6 b
我尝试过使用
temp1 cross join temp2 where temp1.col1 < temp2.col1 order by temp1.col1, temp2.col1
作为完整查询的一部分,但它没有返回所有可能的组合。另外,我不确定如何为每个&#34;写一个&#34;命令的一部分,如在&#34;对于col2中的每个值,从col1&#34;中的值创建所有对。任何指导都将非常感谢。
答案 0 :(得分:2)
也许这就是你要找的东西?
select t1.col1 as col1a, t2.col1 as col1b, t1.col2
from t as t1
join t as t2 on t1.col2 = t2.col2
where t1.col1 < t2.col1
示例SQL Fiddle提供与您的示例相同的输出。