我想在我的专栏中连接所有配对选项。
我有一张桌子:
ID num
1 10
2 20
3 30
我想创建一个查询,它会给我以下结果:
10,20
10,30
20,10
20,30
30,10
30,20
此外,我想要第二个查询将返回没有倍数(10,20 = 20,10)
10,20
10,30
20,30
如何在2个不同的查询中获得上述2?
由于
答案 0 :(得分:3)
对于第一个,我会做一个过滤相同的笛卡尔积。
SELECT a.num, b.num
FROM tablename a, tablename b
WHERE a.num != b.num // Unless you want to exclude by ID
对于第二个,我会强迫一方比另一方更大。
SELECT a.num, b.num
FROM tablename a, tablename b
WHERE a.num < b.num
答案 1 :(得分:0)
假设您的表名是“mytable”。 第一查询:
Select
t1.num,
t2.num
from mytable t1 join mytable t2 on
t1.ID!=t2.ID
第二次质疑:
Select
t1.num,
t2.num
from mytable t1 join mytable t2 on
t1.ID<t2.ID
答案 2 :(得分:0)
您必须使用自联接才能获得所需的结果。使用||连接列。如果表名是t 查询第一个将是:
Select
t1.num||','|| t2.num
from t t1 join t t2 on
t1.id<t2.id
可以使用以下查询获得第二个结果:
{{1}}