sql – 如何在MS Access中正确使用“Not Equal”?

前端之家收集整理的这篇文章主要介绍了sql – 如何在MS Access中正确使用“Not Equal”?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目的:

查询的目的是在不同表中的相似列中不存在的一列中选择所有不同的值.

当前查询

SELECT DISTINCT Table1.Column1
FROM Table2,Table1
WHERE Table1.Column1 <> Table2.Column1

查询结果:

当我尝试运行此查询时会发生什么,进度条几乎立即填满,但是几乎冻结,并且不会做任何其他事情,只要我看到.当我使用=符号而不是<>它输出的值相当正确,如果我将Table2.Column1替换为实际的实际值,它的工作原理很好.

我刚刚打了这个问题再次运行它,上面的查询给了我一个答案这一次,但它有列的所有DISTINCT值,而不是所有的值唯一的表,就像它应该.

关于我在做什么错误或在这里失踪的任何想法?

解决方法

喜欢这个
SELECT DISTINCT Table1.Column1
FROM Table1
WHERE NOT EXISTS( SELECT * FROM Table2
    WHERE Table1.Column1 = Table2.Column1  )

你想不存在,而不是“不相等”

顺便说一句,你很少想像这样写一个FROM子句:

FROM Table1,Table2

因为这意味着“从表1中的每一行的所有组合与表2中的每一行…”通常,这是比您想要看到的更多的结果行.在极少数情况下,您确实想要这样做,更接受的语法是:

FROM Table1 CROSS JOIN Table2

猜你在找的MsSQL相关文章