是否将SQL查询结果与一个查询下的另一个查询语句组合?(复杂)

是否将SQL查询结果与一个查询下的另一个查询语句组合?(复杂),sql,derby,Sql,Derby,我目前想将两个SQL查询合并为一个查询。这有点像。假设有两个查询: SQL语句 1.选择* 从中选择B.example1 从例1a A.ID=B.ID上的内部联接示例1b B A.ABC='ABC' 由…订购 2.选择colstate 从示例_表 其中EFG类似“%” 而BGTHAN>='1' 和SMTHAN='1' 并且SMTHAN错误表明,您正在使用的作为列语句的查询必须最多返回一行 它应该看起来像这样: SELECT (SELECT B.example1 FROM EX

我目前想将两个SQL查询合并为一个查询。这有点像。假设有两个查询:

SQL语句

1.选择* 从中选择B.example1 从例1a A.ID=B.ID上的内部联接示例1b B A.ABC='ABC' 由…订购 2.选择colstate 从示例_表 其中EFG类似“%” 而BGTHAN>='1' 和SMTHAN='1'
并且SMTHAN错误表明,您正在使用的作为列语句的查询必须最多返回一行

它应该看起来像这样:

SELECT (SELECT B.example1  
        FROM EXAMPLE1A A  
        INNER JOIN EXAMPLE1B B 
           ON A.ID = B.ID  
        WHERE A.ABC ='ABC' 
          AND A.SOME_COLUMN = E.SOMECOLUMN // retrieve only relevant data for this row
        ORDER BY A.ORDER_BY ) 
FROM EXAMPLE_TABLE E 
WHERE EFG LIKE '%' 
  AND BGTHAN >= '1' 
  AND SMTHAN <= '100' 
ORDER BY ORDER_BY ASC

将两个查询合并为一个查询-这不是一个好的规范。试着找出作为平面二维表您想要得到的确切内容,将嵌套选择视为嵌套循环,其中内部循环只能为父行设置一个值。像这样:

[Outer loop - parent row]
    [Inner loop - children rows]
        // all you can do here is change a single parent's field to anything
        // like constant/sum/avg/topmost/ugly-subquery-returning-a-single-result
    [/Inner loop]
[/Outer loop]

两个查询之间的关系是什么?i、 e.如果您从第一次查询中得到结果,为什么需要第二次查询?通过选择:选择。。。您应该获得单个值,而不是行集。您可以在内部select上获取最顶部、底部、平均值或任何其他聚合结果,但不能获取所有行。因为它们来自不同的表?第一个sql查询的结果是第二个sql查询中的表\列\名称。如选择[表\列\名称]…否。通常,选择是从每行中给我这个、这个和这个列的值。与第一个不同的是,您将返回超过1个值的内容放在内部查询中。不能将单个值与一组值相关联,每行每个字段只能包含1个值您使用的是哪个DBMS?神谕Postgres?是否可以先运行[outer loop parent],然后在一次执行中将结果传递给[Inner loop-children]?从内部循环中,您只能知道当前父级的行是什么-因此您可以在子查询中使用其值,如:select t1.field1,从表2中选择顶部1 t2.field1,其中t2.id=表1 t1中的t1.id。也许您需要交换内部和外部?EXAMPLEA和EXAMPLEB表中是否有colstate字段?我只是浏览一下您的idea+union,检查它是否是一个魔术…XD不,colstate只是一个随机名称,用于保存第一次查询的结果。。。