아래와 같이 사용하는 query 는 가능합니다.
지금 에러가 발생한 이유는 where 절에서 (exp1) = (exp2) 이런식의 구문을 사용했을때 exp1 의 값과 exp2 의 값이 당연히 하나가 되어야만이 = (equal) 연산자가 만족됩니다. 아래 query 에서 select reg_num 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를 그럼 어떻게 써야 할까요....
:: 알려주시면 너무 감사하겠습니다
|