访问 SQL:没有交叉重复的自连接
Access SQL: Self join without cross duplicates
Table:
Bag | Weight
------------
A | 2
B | 2
C | 3
我想知道哪些包的重量相近;通常我会自己加入 Weight 列;但我不想交叉重复;也就是说,如果我有 A-B,我不想要 B-A。
查询:
SELECT lhs.bag, rhs.bag
FROM myTable AS lhs INNER JOIN myTable AS rhs ON lhs.weight = rhs.weight;
结果:
lhs.bag | rhs.bag
-----------------
A | A
A | B
B | B
B | A
C | C
我不想要结果中的行 B|A,因为类似地它已经在 A|B 中。
预计 Table:
lhs.bag | rhs.bag
-----------------
A | A
A | B
B | B
C | C
扩展加入条件
SELECT lhs.bag, rhs.bag
FROM myTable AS lhs
INNER JOIN myTable AS rhs ON lhs.weight = rhs.weight AND
lhs.bag <= rhs.bag;
Table:
Bag | Weight
------------
A | 2
B | 2
C | 3
我想知道哪些包的重量相近;通常我会自己加入 Weight 列;但我不想交叉重复;也就是说,如果我有 A-B,我不想要 B-A。
查询:
SELECT lhs.bag, rhs.bag
FROM myTable AS lhs INNER JOIN myTable AS rhs ON lhs.weight = rhs.weight;
结果:
lhs.bag | rhs.bag
-----------------
A | A
A | B
B | B
B | A
C | C
我不想要结果中的行 B|A,因为类似地它已经在 A|B 中。
预计 Table:
lhs.bag | rhs.bag
-----------------
A | A
A | B
B | B
C | C
扩展加入条件
SELECT lhs.bag, rhs.bag
FROM myTable AS lhs
INNER JOIN myTable AS rhs ON lhs.weight = rhs.weight AND
lhs.bag <= rhs.bag;