簡體   English   中英

在一個查詢下將SQL查詢結果與另一個查詢語句結合在一起? (復雜)

[英]Combine SQL query result with another query statement under one query? (Complicated)

我目前想將兩個SQL查詢合並為一個。 這有點類似於SQL:獲取查詢結果,然后另一個使用它-Combine 假設有兩個查詢:

SQL語句

1.) SELECT * 
    FROM (SELECT B.example1  
          FROM EXAMPLE1A A  
          INNER JOIN EXAMPLE1B B ON A.ID = B.ID  
          WHERE A.ABC ='ABC' 
          ORDER BY A.ORDER_BY ) as colstate

2.) SELECT colstate 
    FROM EXAMPLE_TABLE 
    WHERE EFG LIKE '%' 
      AND BGTHAN >= '1' 
      AND SMTHAN <= '100' 
    ORDER BY ORDER_BY ASC

我想將查詢1.)中的結果用作查詢2.)中的colstate(列語句)。 但:

我試過的是:

SELECT (SELECT B.example1  
        FROM EXAMPLE1A A  
        INNER JOIN EXAMPLE1B B 
           ON A.ID = B.ID  
        WHERE A.ABC ='ABC' 
        ORDER BY A.ORDER_BY ) 
FROM EXAMPLE_TABLE 
WHERE EFG LIKE '%' 
  AND BGTHAN >= '1' 
  AND SMTHAN <= '100' 
ORDER BY ORDER_BY ASC

原來是錯誤:標量子查詢只允許返回一行 ,我該如何將“ =”替換為“ IN”? 還是我的說法完全錯誤?

該錯誤表明您用作列語句的查詢最多只能返回一行。

它可能看起來像這樣:

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

“將兩個查詢合並為一個”-這不是一個很好的規范。 嘗試找出要作為FLAT二維表真正獲得的內容,將嵌套SELECT視為嵌套循環,其中內部循環只能為父行設置單個值。 像這樣:

[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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM