쿼리문 합치는거 질문입니다~
본문
(SELECT mb_id, COUNT(*) FROM g5_write_advagency WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_advhelp WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_advsale WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_crimehelp WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_evalcompany WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_evalsugg WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_expertinfo WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_festivalinfo WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_foodmarket WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_freeboard WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_funboard WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_humanresource WHERE NOT mb_id ="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_knowhow WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_NOTice WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_poormember WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_qa WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_returnfarming WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_subaskboard WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_selfintroduce WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_satisfyrank WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_usedmachine WHERE NOT mb_id="admin")
UNION
(SELECT mb_id, COUNT(*) FROM g5_write_weeklysatisfy WHERE NOT mb_id="admin")
이렇게 했을때(phpmyadmin에서) 결과가
mb_id | COUNT(*) |
---|---|
0 | |
admin2 | 1 |
이렇게 나옵니다
지금 계정은2개 (admin, admin2) 입니다.
admin2로 쓴글은 1개 맞구요. 나머지 글들은 다 admin 으로 작성해서ㅎㅎ
문제는 저 쿼리문이 너무 긴데 저걸 줄일 수 있는 방법이 없을까요!?
궁극적으로 제가 하려는 것은 주간 베스트 회원(admin 제외 특정게시판 제외(공지,Q&A 등)) top 10 리스트를
만들려고 하고있습니다. 지금 php도 처음 db도 처음이라 여럿 삽질중이네요 ㅠ 많은 가르침 부탁드리겠습니다
제가 합치려는 이유는..혹시 더 짧게 위의 기능을 하는 쿼리문이 있을까 싶기도 하구요
php 라이브러리 파일에서 저걸 불러와야 할것 같은데 너무 길어서;; 그렇습니다 ㅠ
!-->
답변 2
유니언을 너무 남발하는건 좋지 않아요...
new 테이블을 이용해서 하세요~
저런 방식으로 하는 것은 억지로 작동만 한다는 것이지 프로그램으로서는 문제가 많습니다
나중에 게시물 수가 많아진 후를 생각해야합니다
방식을 바꾸세요
스킨 폴더에 write_update.skin.php를 만들어서 아래 코드를 넣어두면 게시물 등록시 마다
카운트를 기록하고 나중에는 회원 테이블에서 간단히 추출할 수 있습니다
-- 게시물 삭제시에는 카운트를 -1 하는 코드를 제작해야겟지만 초보라고 하니 삭제는 무시하고 하세요
<?
if(!$w && $member[mb_id])
sql_query("update $g5[member_table] set mb_1=mb_1+1 where mb_id='$member[mb_id]'");
?>