我希望我没有错过已经发布的对我有帮助的答案。如果我这样做了,请原谅我。
假设要获得以下查询结果,我已经将项目表内部连接到项目值上的定价表。我当前的查询返回类似于以下内容的内容:
Item______Price
Item1_____Price1
Item1_____Price2
Item1_____Price3
Item2_____Price2
Item2_____Price3
Item3_____Price1
Item3_____Price2
Item3_____Price3
我只想返回项目 2 的 SET(两行),因为该项目不存在 Price1。由于 Item1 和 Item3 包含带有 Price1 的行,因此我想排除这些项目的所有行。我想退缩
Item______Price
Item2_____Price2
Item2_____Price3
我已经在我的脚本上尝试了以下内容,但它没有返回任何结果。我不确定我做错了什么,在写作和理解这些东西方面,我仍然很绿色。
并且不存在 ( 选择* 来自 sqlmgr。价格 P2 和(P2.价格 = '价格1')
一个相关的子查询来获取NOT EXISTS
:
NOT EXISTS (SELECT 1
FROM sqlmgr.PRICE P2
WHERE p2.ITEM = p.ITEM AND P2.PRICE = 'PRICE1'
)
您的版本不返回任何内容,因为其中有PRICE1
记录 - 如果没有相关部分(p2.ITEM = p.ITEM
),它将检查整个表,而不仅仅是给定行上感兴趣的项目。
请注意,p
是外部查询中表的别名,无论它是什么。