subquery 를 활용한? where 조건 0 4 1,815

by 신제트 [MySQL] [2022.11.15 15:58:13]


ex) SELECT idx,name,(SELECT t_idx FROM table2) as t2 FROM table1 as t1 WHERE ????

Q. ???에 서브쿼리인 table2의 t_idx 를 조건으로 걸어주는 방법이있나요? ex) t2의 t_idx 가 4인것 

by 마농 [2022.11.15 16:19:05]

쿼리 자체가 좀 이상하구요. 질문도 좀 이상합니다.
스칼라서브쿼리는 1건만 반환해야 하는데 아무런 조건이 없네요?
조건을 주고 싶다고 하는데 서브쿼리안에서 주면 되는 것 아닌지?
서브쿼리 결과에 대한 조건을 주고 싶다면 서브쿼리를 통째로 조건절에 넣으면 됩니다.


by 신제트 [2022.11.16 09:24:34]

네 이 방법이 맞는지 잘모르고 쓴거같습니다.

서브쿼리의 테이블로 조인을걸면 원하는데로 화면에 안나와서 서브쿼리에서 값을 내고 외부 where 절에서 일치하는 항목을 출력해주려고했습니다

서브쿼리절에 json_search를 써서

=> (select (JSON_SEARCH(concat('[',group_concat(t2.idx separator ','),']'), 'one', :t2_idx) is NOT NULL) as a2  from t2) as kk

from t1 where kk.a2 = :t2_idx 이런식으로....

 검색하도록 해보려고 했는데 잘안되서 여쭤봣네용... 답변감사드립니다!!


by 우주민 [2022.11.15 17:26:52]
SELECT t1.idx, t1.name, t2.t_idx
FROM table1 t1 
, table2 t2 
WHERE (t1 과 t2의 join 조건)
and t2.t_idx = 4

table2 의 조건으로 table1의 데이터를 필터링 하는 것이라면 차라리 join 을 사용하는 것이 더 나아 보입니다.


by 신제트 [2022.11.16 09:25:11]

답변 감사드립니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입