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을 검색하게 되어 있네요.
mb_recv_mb_id에 해당하는 nick이 like '불당%'인 것을 찾아야 하는데
지금은 mb_send_mb_id에 해당하는 nick을 검색하게 되어 있네요.
결국은 SQL을 바꿨어요. 글쿠 같게 나오는게 맞아욤...~!!!!
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 '불당%'
지금은
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 '불당%' )
이 쿼리가 정확한지는 테스트 안해봤습니다... ^^;;
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 '불당%' )
이 쿼리가 정확한지는 테스트 안해봤습니다... ^^;;