SQL의 어디가 잘못된 것인가요??? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

SQL의 어디가 잘못된 것인가요??? 정보

SQL의 어디가 잘못된 것인가요???

본문

(1)번과 (2)번의 결과 값이 같습니다.
쉽게 정리하면 b.mb_nick like '불당%' 이라는 조건이 안먹힌거죠.
뭐가 잘못 되었을까요???
 
원하는 거는 g4_memo_send 테이블에서 me_send_mb_id가 $member[mb_id]이면서
mb_recv_mb_id의 닉네임이 불당%인것을 찾는건데... 질문을 수정하려고 읽어보니까
일단 SQL 기본부터 잘못된거 같네요. ㅠ..ㅠ
 
(1)번
select count(*) as cnt
from g4_memo_send a left join g4_member b on (a.me_send_mb_id = b.mb_id)
where (a.me_send_mb_id = 'echo4me')
 
(2)번
select count(*) as cnt
from g4_memo_send a left join g4_member b on (a.me_send_mb_id = b.mb_id)
where (a.me_send_mb_id = 'echo4me') and b.mb_nick like '불당%'

댓글 전체

제가 만든 SQL이 틀렸어요. ㅠ..ㅠ
mb_recv_mb_id에 해당하는 nick이 like '불당%'인 것을 찾아야 하는데
지금은 mb_send_mb_id에 해당하는 nick을 검색하게 되어 있네요.
where (a.me_send_mb_id = 'echo4me' and b.mb_nick like '불당%')
그리고 .. %의 위치로 봐서는...

불당아빠이나 불당엄마 를 검색할때 씁니다..

%불당 이면 아빠불당 엄마불당이 나오구요

^^;

(사실 질문이해가 잘 안간다는..ㅠㅠ)
질문을 올리고 보니까 질문에 쓴 SQL이 원천적으로 잘못 되었다는 것을 알았어요 ㅠ..ㅠ

지금은
a.me_send_mb_id = 'echo4me'이고 mb_nick이 like '불당%'인 것을 찾게 되어 있는데
필요한 것은
a.me_send_mb_id = 'echo4me'이고 a.me_recv_mb_id에 해당하는 mb_nick이 like '불당%'인 것을 찾아야 해요. 조건문에서 ... a.me_recv_mb_id에 해당하는 ... 이부분이 빠졌는데 아무리 고민해도 어렵네요.

select count(*) as cnt
from g4_memo_send a left join g4_member b on (a.me_send_mb_id = b.mb_id)
where (a.me_send_mb_id = 'echo4me') and b.mb_nick like '불당%'
아마도 sub query를 사용하셔야 할듯한데.

IN 은 mysql 4.1 버전 이상부터 지원합니다..

select count(*) as cnt
from g4_memo_send a ,g4_member b
where
a.me_send_mb_id = b.mb_id
and a.me_send_mb_id = 'echo4me'
and a.me_recv_mb_id IN (select mb_id from g4_member where mb_nick like '불당%' )

이 쿼리가 정확한지는 테스트 안해봤습니다... ^^;;
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT