sql - 获取两个字段值的唯一组合

标签 sql ms-access

可能以前有人问过,但我找不到答案。

表数据有两列:

Source   Dest
1         2
1         2
2         1
3         1

我试图提出一个将返回的 MS Access 2003 SQL 查询:
1       2
3       1

但一切都无济于事。请帮忙!

更新:确切地说,我试图排除 2,1,因为 1,2 已经包含在内。我只需要序列无关紧要的独特组合。

最佳答案

对于 Ms Access,您可以尝试

SELECT  DISTINCT
        *
FROM Table1 tM
WHERE NOT EXISTS(SELECT 1 FROM Table1 t WHERE tM.Source = t.Dest AND tM.Dest = t.Source AND tm.Source > t.Source)

编辑:

表数据的示例,这是相同的...
SELECT  DISTINCT
        *
FROM Data  tM
WHERE NOT EXISTS(SELECT 1 FROM Data t WHERE tM.Source = t.Dest AND tM.Dest = t.Source AND tm.Source > t.Source)

或(尼斯和 Access 格式...)
SELECT DISTINCT *
FROM Data AS tM
WHERE (((Exists (SELECT 1 FROM Data t WHERE tM.Source = t.Dest AND tM.Dest = t.Source AND tm.Source > t.Source))=False));

关于sql - 获取两个字段值的唯一组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2386632/

相关文章:

SQL case 语句 - 3 个子句?

mysql - 按 id 排序的复合索引的并发查询速度非常慢

java - 使用数字自动增量 (AutoNumber) 将特定键插入 Access 表

excel - VBA 错误 : 'Range' of object '_Global' Failed

vba - 禁用 MS Access 表单 'details' 部分中的所有控件

mysql - 如何在 CGridView 中显示 SQL 计算列

sql - where 和 join 有区别吗?

mysql - MS Access 检查下一个相关记录以在表单中弹出指示器?

Mysql查询根据另一个表的id替换名称

java - 无法使用 GUI Java 从 MS Access 删除数据