테이블 두개에서 select

테이블 두개에서 select

QA

테이블 두개에서 select

본문

 

 

테이블 2개를 선택해서 select를 하려고 합니다.

두 테이블은 연결되는 것은 없고, 그저 컬럼 형식만 같습니다

 

그래서 union을 써서 쿼리문을 출력했는데

원하는 결과는 나오지만 너무 느린거 같아서요ㅠㅠ

 

좋은 방법이 없을까요?

$sql_search = "and wr_name!='admin' ";

$sql_order = "order by  wr_hit desc limit 0, $rows"; 

 $tmp_write_table1 = $g4['write_prefix'] . $bo_table1; 

$tmp_write_table2 = $g4['write_prefix'] . $bo_table2;

    

$sql = "select * from $tmp_write_table1 where wr_is_comment = 0 $sql_search  union select * from $tmp_write_table2  where wr_is_comment = 0 $sql_search $sql_order"; 

 

이렇게 사용하였습니다.ㅠㅠㅠ

 

 

또 하나 문제가 발생하는게

이렇게 만들어진 결과값을 누르면(게시물을 누르면)

 

update set wr_hit = wr_hit + 1 where wr_id = '51478'

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 'set wr_hit = wr_hit + 1 where wr_id = '51478'' at line 1

error file : /gb4/bbs/board.php 

 

이런 에러가 뜹니다.

아무래도 union을 사용해서 그런거 같은데 이것도 해결할 방안이 없을까요

 

이 질문에 댓글 쓰기 :

답변 2

union 이 좀 그렇다면

view 를 만들서 사용하세요. 그 외에도  

별도의 테이블을 하나 더 만들어서 2개의 table 에서 필요한 정보들 wr_id, wr_name 등등 사용에 따라 필요한 데이터를 입력해셔서 사용하셔되 됩니다.

 

update talbe_name set wr_hit = wr_hit + 1 where wr_id = '51478'

테이블이름을 기입하지 않으셨네요 

union 쓰지 마세요.

 

인젝션 해킹 당해요.

 

union은 안쓰는 것을 권장하고 웬만한 솔류션에서는 union 자체 사용 못하게 막아 되요

 

게시판 테이블은 관계형으로 설계 된것이 아니여서 join으로 해결 하기 힘들 것이에요.

 

관계형이 테이블을 만들어서 하거나 임시 테이블 만들어서 데이터를 때려 넣는 수밖에 없어요.

 

 

 

view테이블은 네이버 검색하면 사용방법 많이 나와요. 

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

회원로그인

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