COMING SOON 🚀

채택완료

mysql 질문드립니다.

TABLE NAME : ca

FIELD : bo_table , wr_id , ca_id
 

bo_table wr_id ca_id
support 52 a010
support 52

a020

support 51 a010
support 50 a010
support 49 a010
support 48 a010
support 47 a010
support 46 a010


위와 같은 8개의 레코드?? 가 있는데요... 레코드라고 부르는게 맞는지 모르겠습니다 ㅠ

 

select 를 사용하여 wr_id = 52이 것만 불러오려고 합니다...

문제는....

where wr_id = '52' 로 하는 것이 아니라

ca_id = 'a010' ca_id = 'a020' 이 두조건을 만족하는 wr_id 를 불러와야 하는 상황입니다.

어떻게 해야할지 모르겠네요 ㅠㅠ

 

 

|

답변 3개 / 댓글 2개

채택된 답변
+20 포인트

select * form ca where wr_id = '52' and (ca_id='a010' or ca_id = 'a020')

으로 하실수있고

 

숫자가 고정이라면

select * form ca where wr_id = '52' and ca_id in ('a010','a020')

으로도 가능합니다

답변에 대한 댓글 2개

문제는 wr_id를 where에 쓰지않아야 합니다..
a010, a020 만으로 저 두개다 and 해서 wr_id 값을 추출해야해요 ㅠ
@완전핵초짜
그런경우라면

select wr_id from ca where ca_id = 'a010' and ca_id = 'a020'

이 됩니다.

Copy
SELECT * FROM ca WHERE wr_id IN (
    SELECT wr_id FROM ca GROUP BY wr_id HAVING GROUP_CONCAT(ca_id) = 'a010,a020'
)

 

record예가 조금 부족합니다. 즉 선택이 안되어야 되는 케이스도 몇개 더 들어가야 좀 더 정확한 sql문이 될 것 같습니다.

답변을 작성하려면 로그인이 필요합니다.