[英]Add results of one SQL query to another query
我現在不太關於SQL查詢,我有一個問題
SELECT PERSON_REF
FROM IMAGES
WHERE PERSON_REF IN (SELECT _PERSON_ID
FROM PERSONS
WHERE REGION_REF = (SELECT _REGION_ID
FROM REGIONS
WHERE REGION_ABB = "EU"))
GROUP BY PERSON_REF
HAVING Count(PERSON_REF) >= 3
這個查詢給出了我的結果
2
4
5
6
現在我想在其他查詢中使用該結果,如何做到這一點,我需要創建循環還是有其他方法
SELECT PERSON_REF
FROM IMAGES
WHERE EFFECT_REF = 2
AND PERSON_REF IN ( 2, 4, 5, 6 )
select Person_Ref from Images where Person_Ref IN (
Select _Person_ID from Persons where
Region_Ref in (select _Region_ID from Regions where Region_Abb = "EU"))
and EFFECT_REF = 2
group by Person_Ref HAVING COUNT(Person_Ref) >= 3
試試這個:
select Person_Ref from Images where Effect_Ref = 2 and Person_Ref IN
( your first query which gives 2 4 5 6)
試試這個:
SELECT PERSON_REF
FROM IMAGES
WHERE EFFECT_REF = 2
AND PERSON_REF IN (SELECT PERSON_REF
FROM IMAGES
WHERE PERSON_REF IN (SELECT _PERSON_ID
FROM PERSONS
WHERE
REGION_REF = (SELECT _REGION_ID
FROM REGIONS
WHERE
REGION_ABB = "EU"))
GROUP BY PERSON_REF
HAVING Count(PERSON_REF) >= 3)
JOIN
三個表Images
, Persons
和Regions
而不是這些IN
和子查詢:
SELECT i.Person_Ref
FROM Images i
INNER JOIN Persons p ON i.Person_Ref = p.Person_Ref
INNER JOIN Regions r ON p.Region_Ref = r.Region_Ref
WHERE r.Region_Abb = "EU"
AND i.Effect_Ref = 2
GROUP BY i.Person_Ref
HAVING COUNT(i.Person_Ref) >= 3
有幾種方法可以做到這一點。 您可以使用IN示例,因為它已經是無法使用但只有在您只需要一列時才會起作用(我知道,這是您的情況,但如果您遇到需要更多的情況,最好知道可以做什么oncolumn)
簡單的方法是將你的查詢包裝到parentesys並給它一個別名,這樣你就可以像使用它一樣使用它:
(SELECT PERSON_REF
FROM IMAGES
WHERE PERSON_REF IN (SELECT _PERSON_ID
FROM PERSONS
WHERE REGION_REF = (SELECT _REGION_ID
FROM REGIONS
WHERE REGION_ABB = "EU"))
GROUP BY PERSON_REF
HAVING Count(PERSON_REF) >= 3 ) MY_ALIAS
然后你可以加入你的其他查詢。 這通常不是一個好方法。
最好的apporach,它使用公用表表達式(CTE),所以你會做這樣的事情:
with MY_FIRST_QUERY as(
SELECT PERSON_REF
FROM IMAGES
WHERE PERSON_REF IN (SELECT _PERSON_ID
FROM PERSONS
WHERE REGION_REF = (SELECT _REGION_ID
FROM REGIONS
WHERE REGION_ABB = "EU"))
GROUP BY PERSON_REF
HAVING Count(PERSON_REF) >= 3
)
select MY_FIRST_QUERY.PERSON_REF
無論你需要什么,你就加入它吧
只需將AND添加到第一個謂詞並指定另一個謂詞。
從PAGES_REF輸入的圖像中選擇PERSON_REF(從REGERS_REF =(從REGIONSAB =“EU”的區域選擇_REGION_ID)選擇_PERSON_ID)和EFFECT_REF = 2具有計數的PERSON_REF組(PERSON_REF)> = 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.