2017-02-06 1 views
0

이 코드를 실행하려고하지만 하나 이상의 행을 다시 가져옵니다 (원하는 결과입니다). 그러나 분명히 : = 연산자는 하나의 값만 처리 할 수 ​​있습니다. 어떻게 내가구문은 무엇입니까

set @oids :=(

    SELECT OBJECT_ID 
    FROM aaa K 
    WHERE K.TYPE IN ('ISSN', 'ISBN') 
    GROUP BY K.OBJECT_ID 
    HAVING count(distinct K.TYPE) = 2 

); 

select * 
from aaa 
where OBJECT_ID in (@oids); 
+0

참조 http로 하나의 쿼리를 사용하여 다음 select 문으로 그것을 밀어 수 있도록 내가 다시 (한 열) 여러 행을 얻을해야합니까 : // meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query – Strawberry

답변

0

그냥 어떤 변수

select * 
from aaa 
where OBJECT_ID in (SELECT OBJECT_ID 
        FROM aaa K 
        WHERE K.`TYPE` IN ('ISSN', 'ISBN') 
        GROUP BY K.OBJECT_ID 
        HAVING count(distinct K.TYPE) = 2 
        ); 
+0

사용할 수 없습니다. 단일 쿼리. 시스템에 너무 부담이됩니다. – yankel