我有一个像这样的结构表:
tblCase
+--------+---------------------+------------+
| CaseID | Reference | ListID |
+--------+---------------------+------------+
| 1 | A | 101 |
+--------+---------------------+------------+
| 2 | B | 101 |
+--------+---------------------+------------+
| 3 | A | 102 |
+--------+---------------------+------------+
| 4 | B | 102 |
+--------+---------------------+------------+
| 5 | C | 102 |
+--------+---------------------+------------+
我尝试编写的查询只返回ListID x中但不在ListID y中的引用。
例如,使用此数据,我比较列表ID 101和列表ID 102,并仅返回参考C,因为参考C仅在ListID 102中找到。
像
这样的东西SELECT Reference FROM tblCase WHERE ListID = 102
EXCEPT
SELECT Reference FROM tblCase WHERE ListID = 101
但是,除了在Access中没有工作,我不确定如何在这种情况下复制它。我已经找到了其他类似问题的答案,但我们无法成功地将答案适应我的情况。
由于
编辑:使用SylvainL的建议解决。谢谢你的帮助:)
答案 0 :(得分:2)
一种简单的方法是使用Not Exists()语句;类似的东西:
Select Reference from MyTable t1
Where ListId = 102 and
Not Exists (Select * from MyTable t2 where t2.Reference = t1.Reference and T2.ListId = 101)
从MyTable向自身使用Left Join并查找Null值是另一种解决方案。