我有一个 Access 2010 数据库,它存储源机器和目标机器的 IP 地址。如果我的数据库中有以下条目
|来源 | 目的地| |--------------------------------| | 一个 | 乙| | 乙| 一个 | | 一个 | 乙| | C | D | | D | D |
是否有任何查询可以选择唯一对?也就是说,查询的输出应该是
|来源 | 目的地| |----------------------------------| | 一个 | 乙| | C | D |
我有一个 Access 2010 数据库,它存储源机器和目标机器的 IP 地址。如果我的数据库中有以下条目
|来源 | 目的地| |--------------------------------| | 一个 | 乙| | 乙| 一个 | | 一个 | 乙| | C | D | | D | D |
是否有任何查询可以选择唯一对?也就是说,查询的输出应该是
|来源 | 目的地| |----------------------------------| | 一个 | 乙| | C | D |
你的问题似乎暗示了两件事:
列出源/目标对时,您只想查看一个方向的对,例如 (A,B) 而不是 (B,A)。
该列表应省略源和目标相同的对,例如 (D,D)
在这种情况下,查询...
SELECT DISTINCT source, destination
FROM
(
SELECT source, destination
FROM SomeTable
UNION ALL
SELECT destination, source
FROM SomeTable
)
WHERE source < destination
...当针对包含...的 [SomeTable] 运行时
source destination
------ -----------
A B
B A
A B
C D
D D
E D
...将产生:
source destination
------ -----------
A B
C D
D E
从 YourTable 中选择唯一的来源、目的地
或者
从 YourTable 中选择不同的来源、目的地
或者
按源、目标从 YourTable 组中选择源、目标
使用GROUP BY子句
SELECT source, destination
FROM SomeTable
GROUP BY source, destination