고수님들 도와주십시오. 쿼리문제입니다. ㅠ 정보
고수님들 도와주십시오. 쿼리문제입니다. ㅠ본문
안녕하세요. 고수님들.
다른게 아니라..
기능하나를 넣으려하는데
게시물 쓰면 포인트 쌓이잖아ㅣ요
포인트중에서 순수하게 게시판에 쓴것만 회원별로 합산하고 싶어서요
게시물 포인트만 추가하되, 회원 레벨이 8 이상인 회원은 제거한다. 이거죠.
만들어놓은게 잇는데. 이게 미완성이라. ㅠ
좀 봐주시면 감사하겠습니다.
=======================
SELECT
mb_id, SUM(po_point) as cnt
from $g4[point_table]
where po_rel_table<>'@member' and po_rel_table<>'@passive'
and mb_id<>'admin'
and mb_id<>'Xplant'
and mb_id<>'pegasus'
and mb_id<>'00floret'
and mb_id<>'kim0421'
and mb_id<>'lilywhite77'
and mb_id<>'boxxod'
and mb_id<>'bb212'
and mb_id<>'seokjung87'
and mb_id<>'purifarm'
group by mb_id
order by cnt desc
limit 0,8 ";
======================
이건데요
여기 뒤에 and mb_id<> 이거.. 를 매번 추가해야해서
mb_level>8 이상은 제외 이렇게 핧수 업나요?
제가 해놓은건. 회원가입포인트, 관리자부여포인트 를 제외한 나머지 포인트를 합산하는건데
<> 이 많다보니. 조건이 안맞는지. 뒤에 <> 를 매번 추가해야하더라구요 ㅠ
도와주십시오. 고수님들.. ㅠ
다른게 아니라..
기능하나를 넣으려하는데
게시물 쓰면 포인트 쌓이잖아ㅣ요
포인트중에서 순수하게 게시판에 쓴것만 회원별로 합산하고 싶어서요
게시물 포인트만 추가하되, 회원 레벨이 8 이상인 회원은 제거한다. 이거죠.
만들어놓은게 잇는데. 이게 미완성이라. ㅠ
좀 봐주시면 감사하겠습니다.
=======================
SELECT
mb_id, SUM(po_point) as cnt
from $g4[point_table]
where po_rel_table<>'@member' and po_rel_table<>'@passive'
and mb_id<>'admin'
and mb_id<>'Xplant'
and mb_id<>'pegasus'
and mb_id<>'00floret'
and mb_id<>'kim0421'
and mb_id<>'lilywhite77'
and mb_id<>'boxxod'
and mb_id<>'bb212'
and mb_id<>'seokjung87'
and mb_id<>'purifarm'
group by mb_id
order by cnt desc
limit 0,8 ";
======================
이건데요
여기 뒤에 and mb_id<> 이거.. 를 매번 추가해야해서
mb_level>8 이상은 제외 이렇게 핧수 업나요?
제가 해놓은건. 회원가입포인트, 관리자부여포인트 를 제외한 나머지 포인트를 합산하는건데
<> 이 많다보니. 조건이 안맞는지. 뒤에 <> 를 매번 추가해야하더라구요 ㅠ
도와주십시오. 고수님들.. ㅠ
작성자에 의해 채택됐습니다.
select a.mb_id, sum(a.po_point) cnt from $g4[point_table] a
left join $g4[member_table] b on a.mb_id = b.mb_id
and a.po_rel_table<>'@member' and a.po_rel_table<>'@passive'
and b.mb_level < '8 '
group by a.mb_id
order by cnt desc /* 포인트합 높은순서. 반디는 뒤에 desc 생략 */
limit 0,8
left join $g4[member_table] b on a.mb_id = b.mb_id
and a.po_rel_table<>'@member' and a.po_rel_table<>'@passive'
and b.mb_level < '8 '
group by a.mb_id
order by cnt desc /* 포인트합 높은순서. 반디는 뒤에 desc 생략 */
limit 0,8
댓글 전체
서브 쿼리가 되신다면 (mysql 4.1부턴가 가능하다고 들었습니다 )
and mb_id not in (select mb_id from $g4[member_table] where mb_level > 8)
이렇게 해보세요
and mb_id not in (select mb_id from $g4[member_table] where mb_level > 8)
이렇게 해보세요
음.. 서브쿼리는 되는거 같은데, 에러가 나네요. ㅠ
문법은 맞는거 같은데..
그래도 답변주셔서 감사합니다.
문법은 맞는거 같은데..
그래도 답변주셔서 감사합니다.
어떤에러가 나는지 올려주시면 자세한 답변이 가능합니다
위 쿼리가 에러가 나서. join 을 이용했거든요
위 쿼리를 쓰니깐..
1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select mb_id, mb_level from g4_member where mb_level > '8') g
error file : /index.php
이 에러가 나구요. 서브쿼리가 안먹는건지는 모르겠습니다. ㅠ
그래서.. 다른 분이 알려주신 join 으로 하려 햇더니. 다른 에러가 나네요.
select mb_id, sum(po_point) cnt from $g4[point_table] a,
$g4[member_table] b
where a.mb_id = b.mb_id
and a.po_rel_table<>'@member' and a.po_rel_table<>'@passive'
and b.mb_level < '8 '
group by a.mb_id
limit 0,8
이리 하니..
1052 : Column: 'mb_id' in field list is ambiguous 에러가 나네요..
이리 하면 안되나요?
위 쿼리를 쓰니깐..
1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select mb_id, mb_level from g4_member where mb_level > '8') g
error file : /index.php
이 에러가 나구요. 서브쿼리가 안먹는건지는 모르겠습니다. ㅠ
그래서.. 다른 분이 알려주신 join 으로 하려 햇더니. 다른 에러가 나네요.
select mb_id, sum(po_point) cnt from $g4[point_table] a,
$g4[member_table] b
where a.mb_id = b.mb_id
and a.po_rel_table<>'@member' and a.po_rel_table<>'@passive'
and b.mb_level < '8 '
group by a.mb_id
limit 0,8
이리 하니..
1052 : Column: 'mb_id' in field list is ambiguous 에러가 나네요..
이리 하면 안되나요?
'mb_id' in field list is ambiguous :mb_id가 모호하다는 말이잖아요
select b.mb_id.............
select b.mb_id.............
위 sql 중에 어디에 끼워야하나요? ... 쿼리에 넘 약해서리. ㅠ
'select mb_id, mb_level from g4_member where mb_level > '8') g
select mb_id from g4_member where mb_level > '8'
이렇게 수정하고 해보세요
select 절에 필드 2개 쓰시면 안됩니다.
select mb_id from g4_member where mb_level > '8'
이렇게 수정하고 해보세요
select 절에 필드 2개 쓰시면 안됩니다.
쿼리는 맞는데.. mysql 이 4.0 이네요. ㅠ. 서브쿼리를 못쓴다는..
휴.. 위에 join 문을 수정해서 해야하나요?
방법이 없을까요?
휴.. 위에 join 문을 수정해서 해야하나요?
방법이 없을까요?
작성자에 의해 채택됐습니다.
select a.mb_id, sum(a.po_point) cnt from $g4[point_table] a
left join $g4[member_table] b on a.mb_id = b.mb_id
and a.po_rel_table<>'@member' and a.po_rel_table<>'@passive'
and b.mb_level < '8 '
group by a.mb_id
order by cnt desc /* 포인트합 높은순서. 반디는 뒤에 desc 생략 */
limit 0,8
left join $g4[member_table] b on a.mb_id = b.mb_id
and a.po_rel_table<>'@member' and a.po_rel_table<>'@passive'
and b.mb_level < '8 '
group by a.mb_id
order by cnt desc /* 포인트합 높은순서. 반디는 뒤에 desc 생략 */
limit 0,8
자체해결햇는데, sisin 님이 동일한 답을 달아주셧군요!!. 감사합니다. ㅠ
제가 용쓰면서 찾은걸 이리 쉽게 풀어주시다니..
역시 sql 은 몇년을 해도 어렵네요. 휴..
답변 주신 여러분들 감사합니다.
제가 용쓰면서 찾은걸 이리 쉽게 풀어주시다니..
역시 sql 은 몇년을 해도 어렵네요. 휴..
답변 주신 여러분들 감사합니다.