2개의 테이블의 업데이트 질문입니다.

2개의 테이블의 업데이트 질문입니다.

QA

2개의 테이블의 업데이트 질문입니다.

본문

a테이블의 b필드에 적히 날짜가 오늘보다 작으면 c테이블에 d필드와 e필드의 값을 바꾸고 싶은데요


가능한가요?



$sql =" update {$g5['board_new_table']} set addarea = '$word', mb_id = '{$m_id},{$word}' where g5_write_note = where wr_8 < '".G5_TIME_YMD."' ";


이렇게 하는게 맞나요? ㅠ.ㅠ



이 질문에 댓글 쓰기 :

답변 3

네 가능은 하지만 그 검색 구분을 쿼리를 한곳에서 처리하기 보다는 데이터를 가져와서 오늘 날짜를 비교 한후 그에 따른 update 쿼리를 실행해 주시면 좋을듯 합니다.

저런식의 쿼리는 동작하는지는 잘 모르겠네요


이론적으로는 모르겠지만 {$g5['board_new_table']} 테이블 자체를 걸러주는 where 조건이 없다보니


결국 전체를 다 바꾸는 결과를 초래할거 같습니다.


쿼리 자체를


$sql =" update {$g5['board_new_table']} set addarea = '$word', mb_id = '{$m_id},{$word}' where g5_write_note.wr_8 < '".G5_TIME_YMD."'  and {$g5['board_new_table']} = '해당조건'"


처럼 수정해서 동작하게 할수는 있겠지만


윗분 말씀처럼 a 테이블의 값을 가져와서 비교 한뒤 c 테이블을 바꾸는 쿼리를 넣는게 오류를 줄이는 현명한 방법으로 보입니다.

질문하신 한글의 내용을 

쿼리만 적어봅니다.




update tablec 
set d= 'aaa', e='bbb'
where curdate() > (select b from tableA)
;


라는건데


조건이 이상하죠.


1행 이상 나올경우 오류로 처리가 안될것이고


c테이블의 어느 데이타와 연결해야 할지 조건자체가 없습니다.


위의 적어놓으신 쿼리를 먼저 코딩하기전에

sql 로 실행해보시고 나서 프로그램으로 적용하는게 맞습니다.


언급하신


$sql =" update {$g5['board_new_table']} set addarea = '$word', mb_id = '{$m_id},{$word}' where g5_write_note = where wr_8 < '".G5_TIME_YMD."' ";

는 오류납니다.


조건이 이상하다는거죠

where 테이블 = where 라는 것 자체가 문법오류


질문을 다시하시거나


조건을 잘 만들어서 (쿼리를 잘 모르시면) 질문을 올려보세요


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

회원로그인

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