簡體   English   中英

如何解決需要二級子查詢的SQL查詢?

[英]How to solve a SQL query that requires a second level sub-query?

我必須引用原始查詢中的數據來檢索子查詢,並且不確定如何執行(至少以一種非常干凈有效的方式)。

以下是一些示例數據,用以說明我要實現的目標:

id    original_id     flag   rec   
--    -----------     ----   ---
5           5          Y      1
6           5          N      1
7           5          N      1
8           15         N      1
9           15         N      1
10          10         Y      2
11          10         N      2

因此,我試圖選擇具有rec = 1和original_id =(標志的original_id ='Y'記錄)的所有記錄。

在此示例中,由於標志='Y'記錄的original_id為5,因此我嘗試獲取id(5、6、7),因此select id where rec = 1 and original_id = 5返回我需要的內容。

為了記錄,我嘗試了

 select id
 from table t1 join
 table t2 on t1.id = t2.id and t2.original_id = t1.original_id and t1.current = 'Y'
 where t1.id = 1

但這只會返回“ Y”記錄,id = 5

我可以用來檢索這些記錄的SQL查詢是什么? 任何幫助,將不勝感激!

看來您有太多而且

select id
from table t1 join
table t2 on t1.id = t2.id and 
t2.original_id = t1.original_id and t2.original_id
and t1.flag= 'Y'

這應該返回您要查找的數據:

select t1.id
from table t1
inner join table t2
on t1.original_id = t2.id
and t2.flag = 'Y'
where t1.rec = 1

暫無
暫無

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

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