쿼리문으로 합계를 낼려고 합니다...

쿼리문으로 합계를 낼려고 합니다...

QA

쿼리문으로 합계를 낼려고 합니다...

본문

to_chan -> idx, name, sca, neo, datetime

 

to_mark -> idx, name, sca, neo_cnt, datetime

 

to_chan 테이블에서 neo에 분류별 한글로 저장이 됩니다

 

분류로 저장된 값 갯수를 to_mark 테이블 neo_cnt에 입력을할려고 하는데 잘안됩니다

 

$sql = "UPDATE to_mark SET neo_cnt = (select count(idx) from to_chan where neo = '".$neo."') + 1 WHERE idx = ".$idx."";
sql_query($sql);

 

이렇게하니 값이 안들어는데..어디가 잘못인지 좀 알려주세요..

이 질문에 댓글 쓰기 :

답변 3

$sql = "update to_mark

          set neo_cnt = (

                  select count(*) from to_chan

                  where neo='아츠카'

                         and name='아츠카')

          where name = '아츠카' 

          ";

와 같이 name이 동일한것은 동일한 데이타의 연결고리 라는 게 존재라고 판단했습니다.

 

제가 작성해드린 쿼리문과같이 동일한 조건의 대상이 되어야 합니다.

그리고, 쿼리문에서 " 와  ' 를 잘 구분하셔야 합니다.

$sql = "UPDATE to_mark SET neo_cnt = (select count(idx) +1 from to_chan where neo = '".$neo."') WHERE idx = ".$idx;

 

이렇게 한번 해보세요

위의 쿼리로 보면

 

to_mark 의 neo_cnt 에 update를 해야 하는 상황입니다.

 

그 값은 to_chan에서 neo 의 갯수입니다

 

하지만, 

to_mark에서 어떤 대상을 update를 할지가 명확하지 않습니다.

 

그래서 idx 라는 기준이 존재하지 않게되기때문에

수정자체가 안됩니다.

 

위에서 수정문을 만들기전에

 

to_mark에 서 수정할 대상을 명확하게 (idx값) 판단하는 조건이 선행되야 합니다.

 

예를들어

 

neo는 이름기준이라던지

idx는 to_chan과  to_mark가 동일하다던지

이런 key 에 대한 판단이 되어야죠

친절한 답변 감사합니다 쿼리문을 강제로 해서 sql돌려본 보니 값은 제대로 들어가서 출력이 됩니다
$sql = "UPDATE to_mark SET neo_cnt = (select count(name) from to_chan where neo = "아스카") WHERE name= "아스카" ";
결과 neo_cnt : 3 라고
그런데 이걸 다시 원래되로 하면 역시 안되네요 ㅠ

답변을 작성하시기 전에 로그인 해주세요.
전체 32
QA 내용 검색

회원로그인

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