首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL查询- SQL Developer

SQL查询- SQL Developer
EN

Stack Overflow用户
提问于 2015-05-11 20:47:45
回答 1查看 76关注 0票数 1

我对下面的查询有一个问题。基本上,下面的查询给出了一个ITEM_MASTER表中的所有项,这些项位于ITEM_LOCATION表的位置'9999‘,并且在ITEM_LOCATION表中的状态也是'C’。我想检查下面的查询中是否有任何这些项目也在任何其他位置,并且状态为'A‘。

因此,基本上我希望交叉引用这个查询中的项,看看它们中是否有任何其他位置也出现在任何其他位置,而不仅仅是9999,以及它们的状态是否为'A‘

代码语言:javascript
运行
复制
SELECT IM.ITEM MIN,
   IM.ITEM_DESC,
   IL.ITEM MIN,
   IL.LOC,
   IL.STATUS
   FROM ITEM_MASTER IM,ITEM_LOC IL
   WHERE IM.ITEM_LEVEL = 2
   AND   IM.TRAN_LEVEL = 2
   AND IL.STATUS = 'C'
   AND IM.ITEM = IL.ITEM
   AND IL.LOC = 9999;

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-05-11 20:52:05

首先,您应该使用适当的join语法编写查询:

代码语言:javascript
运行
复制
SELECT IM.ITEM MIN, IM.ITEM_DESC,
       IL.ITEM MIN, IL.LOC, IL.STATUS
FROM ITEM_MASTER IM JOIN
     ITEM_LOC IL
     ON IM.ITEM = IL.ITEM
WHERE IM.ITEM_LEVEL = 2 AND IM.TRAN_LEVEL = 2 AND IL.STATUS = 'C' AND
      IL.LOC = 9999;

您可以使用exists实现您想要的功能

代码语言:javascript
运行
复制
SELECT IM.ITEM MIN, IM.ITEM_DESC,
       IL.ITEM MIN, IL.LOC, IL.STATUS
FROM ITEM_MASTER IM JOIN
     ITEM_LOC IL
     ON IM.ITEM = IL.ITEM
WHERE IM.ITEM_LEVEL = 2 AND IM.TRAN_LEVEL = 2 AND IL.STATUS = 'C' AND
      IL.LOC = 9999 AND
      EXISTS (SELECT 1
              FROM ITEM_MASTER IM2 JOIN
                   ITEM_LOC IL2
                   ON IM2.ITEM = IL2.ITEM
              WHERE IM2.ITEM = IM.ITEM AND
                    IL2.LOC <> 9999 AND
                    IL2.STATUS = 'A'
             );
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30168077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档