고수님들 쿼리문 조언좀 부탁드려요 ㅠ
본문
현재 A라는 테이블에 매물 정보를 담고 있습니다. A테이블 필드 중 카테고리 필드가 따로있고,
카테고리별로 담고있어야할 정보가 전부 상이해 각 카테고리별로 8개의 테이블로 나누어 놨습니다.
PHP에서 리스트로 뿌릴때 아래처럼 반복문안에서 카테고리별로 테이블에서 가져오겠금 구성했는데
$sql = "SELECT * FROM A테이블";
$rst = mysql_query($sql);
while ($row = mysql_fetch_array($rst)) {
//카테고리 필드 쿼리
$opt = "select * from 카테고리별 테이블";
}
리스트에서 검색을 여러가지 조건으로 검색을 할려고하니 각 카테고리 테이블을 모두 들고와야하는 문제가 있어
도무지 좋은 방법이 떠오르지 않아서
무식하게 전부 join으로 8개 테이블을 걸어버렸습니다
추후 데이터가 쌓이면 속도문제등이 이슈가 될 것 같은데 이럴 경우에는 쿼리문을 어떻게 작성해야될까요? ㅠㅠ
답변 1
$sql = " SELECT * FROM A테이블 where (1) ";
if(조건문){
$sql .= " and a테이블아이디 in ( select distinct(a테이블아이디 ) from b테이블 where b테이블에서 찾아야 하는 조건) ";
}
if(조건문2){
$sql .= " and a테이블아이디 in ( select distinct(a테이블아이디 ) from c테이블 where c테이블에서 찾아야 하는 조건) ";
}
저는 이런 식으로 자주 합니다.
조건문이 들어가면 느려지기는 하지만 조건문이 없을 땐 빠르거든요.