상기님 from 절에서 subquery를 이번 7.1 부터 처음으로 지원을 하는군요. 그러고 보니 이게 oracle 의 inline view 라는 놈과 동일한 기능이로군요. :/)
>>김상기 님께서 쓰시길<<
:: SELECT user_info.name, b.src_query
:: FROM user_info,
:: (SELECT * FROM query_info
:: WHERE src_query LIKE '%경제%') b
:: WHERE user_info.reg_num = b.reg_num
::
:: 이런 구문을 7.0.x 까지는 지원하지 않았는데,
:: 이제 지원하더군요. 꽤나 유용하게 쓰이는 구문입니다.
::
:: 물론 아래와 같은 경우라면, WHERE ... IN 형태의 subquery가
:: 더 빠르게 작동할 것같군요.
::
:: >>정재익 님께서 쓰시길<<
::
:: :: 아래와 같이 사용하는 query 는 가능합니다.
:: :: 지금 에러가 발생한 이유는 where 절에서 (exp1) = (exp2) 이런식의 구문을 사용했을때 exp1 의 값
:: 과 e
:: :: xp2 의 값이 당연히 하나가 되어야만이 = (equal) 연산자가 만족됩니다. 아래 query 에서 select re
:: g_n
:: :: um from query_info where src_query like '%경제%'; 라는 절의 query 결과 돌아오는 결과값이 하
:: 나가
:: :: 아닌 둘 이상이 돌아오기 때문에 아래와 같은 에러가 발생한 것입니다.
:: ::
:: :: 만약 원하는 query 가 아래 처럼 exp2 에 둘이상의 값이 돌아오더라도 상관이 없고, user_info.reg_
:: num
:: :: 이 그 중 하나만 만족해도 된다면 = 연산자 대신에 IN 이라는 연산자를 사용해 주시기 바랍니다.
:: ::
:: :: SELECT user_info.name, query_info.src_query
:: :: FROM user_info, query_info
:: :: WHERE user_info.reg_num IN (SELECT reg_num FROM query_info
:: :: WHERE src_query LIKE '%경제%')
:: ::
:: :: >>김재청 님께서 쓰시길<<
:: ::
:: :: :: SELECT user_info.name, query_info.src_query
:: :: :: FROM user_info, query_info
:: :: :: WHERE user_info.reg_num = (SELECT reg_num FROM query_info
:: :: :: WHERE src_query LIKE '%경제%')
:: :: ::
:: :: :: 이렇게 사용하는게 가능한가요
:: :: ::
:: :: :: 먼저 query_info 테이블에서 src_query가 경제 인것의 reg_num을 찾아서 그 reg_num을 가지고
:: 다시
:: :: joi
:: :: :: n한 테이블에서 user_info.name 과 query_info.src_query 를 출력할려고 합니다 그런데 잘안되
:: 는구
:: :: 요 E
:: :: :: RROR 가 나는데 메시지는 이렇게 뜹니다
:: :: ::
:: :: :: ERROR: More than one tuple returned by a subselect used as an expression.
:: :: ::
:: :: :: 에러의 의미는 알겠는데 이query를 그럼 어떻게 써야 할까요....
:: :: :: 알려주시면 너무 감사하겠습니다
|