Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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 如何将查询结果用作另一个查询中的字段,而不是另一个查询中的字段-query';A';查询';B';然后查询';C';?_Sql_Oracle11g - Fatal编程技术网

Sql 如何将查询结果用作另一个查询中的字段,而不是另一个查询中的字段-query';A';查询';B';然后查询';C';?

Sql 如何将查询结果用作另一个查询中的字段,而不是另一个查询中的字段-query';A';查询';B';然后查询';C';?,sql,oracle11g,Sql,Oracle11g,我想知道如何编写SQL查询-情况是,我有一个查询'a'可以从PATIENTS表中提取多个列,其中一个是PERSON\u ID,使用查询'a'结果,我想在得到查询'B'的结果后,从ORDERS表中编写具有'ORDERS\u ID'的查询'B',然后我想使用这个查询结果来编写查询“C”,它将为我提供结果表中的所有“results\u ID”。请指导我如何做到这一点。我的数据库是Oracle。听起来你想要一个由a、B和C组合而成的单一查询,其中该查询是患者、医嘱和结果之间的连接。 我不知道你桌子的结构

我想知道如何编写SQL查询-情况是,我有一个查询'a'可以从PATIENTS表中提取多个列,其中一个是PERSON\u ID,使用查询'a'结果,我想在得到查询'B'的结果后,从ORDERS表中编写具有'ORDERS\u ID'的查询'B',然后我想使用这个查询结果来编写查询“C”,它将为我提供结果表中的所有“results\u ID”。请指导我如何做到这一点。我的数据库是Oracle。

听起来你想要一个由a、B和C组合而成的单一查询,其中该查询是患者、医嘱和结果之间的连接。 我不知道你桌子的结构;在将来,如果你能举个例子,这会很有用,所以我在猜测,但我想你想要的是:

select blah, blah
from patients p
join order o
  on p.patient_id = o.order_id
join results r
  on o.order_id = r.order_id

为什么不能直接使用连接呢?性能问题我们有大量的数据。连接是关系数据库(如Oracle)非常擅长的事情。所以,如果您有性能问题,您可以提供一些指标,例如表大小、基数(不要说“吨”,因为这没有帮助)和一些调试,例如SQL监视器报告。在查询B中使用查询a的结果,然后在查询C中使用查询a的结果听起来像嵌套的子查询-这没有什么特别之处。需要注意的一点是,一个查询只能与比它高一级(而不是更高)的查询相关联。或者可以使用
with
子句编写后续查询,这将使代码更易于阅读。除此之外,您还必须给出一个更具体的示例,说明您的数据结构、您正在尝试做什么、遇到什么问题以及需要帮助。现在你的问题“太宽泛了”。除了BobC所写的:你试图做的是“连接”数据库之外的数据。这几乎总是比让数据库执行其设计目的要慢。