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 '불당%'
|

댓글 6개

전 다르게 나오는데요..
제가 만든 SQL이 틀렸어요. ㅠ..ㅠ
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 '불당%'
아마도 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 '불당%' )

이 쿼리가 정확한지는 테스트 안해봤습니다... ^^;;
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

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

+
제목 글쓴이 날짜 조회
18년 전 조회 1,422
18년 전 조회 1,599
18년 전 조회 1,511
18년 전 조회 1,026
18년 전 조회 941
18년 전 조회 944
18년 전 조회 925
18년 전 조회 1,150
18년 전 조회 1,560
18년 전 조회 1,564
18년 전 조회 1,020
18년 전 조회 1,336
18년 전 조회 1,334
18년 전 조회 1,281
18년 전 조회 1,998
18년 전 조회 1,678
18년 전 조회 1,553
18년 전 조회 1,627
18년 전 조회 1,676
18년 전 조회 1,435
🐛 버그신고