访问 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;