我正在编写一个查询来过滤一些记录,但没有得到如何实现这一点。以下是标准。
我有一张表xRef
,其中没有。使用marketId,promoId,dcId,refId的列。在表格中,marketId
,promoId
,dcId
和refId
是复合键。
这意味着那里可以是多个记录,这些记录可能与promoId
,marketId
相同但dcId
不同。
现在我有2个dcIds例如10和15并且这些DC都有表中的rocords。
现在我需要所有记录
我尝试使用MINUS
运算符,但因为它是复合键,我无法使用它。我也尝试了NOT EXISTS
,但它没有用。可能是我没有以正确的方式使用。
由于我不是数据库人,因此无法找到最终解决方案。所以我需要像你这样的专家的帮助。你能帮我解决一下这个问题吗?
答案 0 :(得分:1)
这个查询可能是您正在寻找的内容:
SELECT * FROM xRef t1
WHERE t1.dcId = 10
AND NOT EXISTS (SELECT dcId FROM xRef t2
WHERE t1.promoId = t2.promoId
AND t1.marketId = t2.marketId
AND t1.refId = t2.refId
AND t2.dcId = 15)