Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在两个结果集之间挑出重复项_Sql_Oracle - Fatal编程技术网

Sql 在两个结果集之间挑出重复项

Sql 在两个结果集之间挑出重复项,sql,oracle,Sql,Oracle,我有一个问题,我正试图这样做。我试图选择出现在结果集中的值 我目前正在处理两个问题: A B除最后一行外,与上述相同,其中 AND fnppp.id = 1715 现在,第一个查询返回1536条记录,第二个查询返回2067条记录。然而,在这两个查询中都会出现记录人。我想做的是把他们挑出来。基本上,我想做一个交叉路口,所以我会研究一下 到目前为止,我已尝试做以下工作: -我在查询中添加了以下内容: AND pi.person_id NOT IN (SELECT /*+ RULE */ pi.

我有一个问题,我正试图这样做。我试图选择出现在结果集中的值

我目前正在处理两个问题:

A

B除最后一行外,与上述相同,其中

AND fnppp.id = 1715 现在,第一个查询返回1536条记录,第二个查询返回2067条记录。然而,在这两个查询中都会出现记录人。我想做的是把他们挑出来。基本上,我想做一个交叉路口,所以我会研究一下

到目前为止,我已尝试做以下工作:

-我在查询中添加了以下内容: AND pi.person_id NOT IN (SELECT /*+ RULE */ pi.person_id FROM ... ) 其中括号内的查询是查询B,而不是第一行的查询。这将返回大约10行,我不确定这是否准确

-然后我运行了相同的查询,除了notin。这给了我一个大约200的结果,我不确定这是否准确

现在这两个数字加起来显然不等于1536,我想应该是这样吧?很明显,他们中的一个或两个都错了


谁知道我做错了什么?感谢您的帮助。

如果您确实要查找两个结果集之间匹配的记录,请查看有关该命令的信息

不过,看看你的问题,我不确定这是你想要的。如果一条记录的fnpp.id=1169,那么同一条记录的fnpp.id=1715又如何呢


您可能正在寻找更类似的内容吗?

看起来您已经获得了引用所有medcrtr.FREST\u节点引用的层次数据,但您没有使用Oracle层次语法CONNECT BY…您能澄清一下将它们单独列出是什么意思吗?您想只查看与fnppp.id值和use INTERSECT值匹配的行,还是只查看唯一的行并使用UNIONDOWN作为响应。INTERSECT是我应该一直使用的。虽然我正在尝试通过语法实现CONNECT,但我不确定如何开始,您有关于从哪里开始的提示吗?另外,与我的查询的编写方式相比,它有什么好处,除了干净之外?@Denominor:与问题的其余部分无关,但有一个规则提示?你使用的是哪个版本的甲骨文?@马克·班尼斯特:你能解释一下吗?实际上,我从其他人那里继承了这个查询,我不确定该提示如何应用于该查询。它似乎运行一样快,没有它,所以我想删除它,如果可能的话。我现在在9i上。谢谢,我不知道我怎么忘记了INTERSECT,这正是我需要的。 AND pi.person_id NOT IN (SELECT /*+ RULE */ pi.person_id FROM ... )