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