그누보드 리스트 검색 쿼리문? 관련질문입니다..
본문
$sql='select * from 102 order by wr_id desc limit 0, 10 ';
$res=sql_query($sql);
for ($i=0; $row=sql_fetch_array($res); $i++){
$sql2="select * from 101 where wr_2='{$row[wr_2]}'";
$row2=sql_fetch($sql2);
//row2[wr_14] = 홍보구분
echo $row[wr_2]."<br>";
}
?>
102의 데이터를 뿌려주고있는데
101의 wr_14 에 예를들어 a,b,c 라는 값이있을때
b에만 해당하는 102의 데이터를 뽑으려면 쿼리문을 어떻게 작성해줘야할까요..?
답변 4
$sql='select * from 102 order by wr_id desc limit 0, 10 ';
$res=sql_query($sql);
for ($i=0; $row=sql_fetch_array($res); $i++){
$sql2="select * from 101 where wr_2='{$row[wr_2]}'";
$row2=sql_fetch($sql2);
//row2[wr_14] = 홍보구분
if(strpos($row2[wr_14], 'b') !== false){
echo $row[wr_2]."<br>";
}
}
?>
$sql='select * from 102 as 102 left join 101 as 101 on 102.wr_14 = 101.wr_2 order by wr_id desc limit 0, 10 ';
이런식으로 left join 알아보셔영
위에꺼는 실행안해봐서 ㅎㅎ; sql문 틀리수있어요~
$sql = "SELECT A.* FROM 102 AS A LEFT JOIN 101 AS B ON A.wr_2 = B.wr_2 WHERE (1) AND B.wr_14 LIKE '%b%' ORDER BY wr_id DESC LIMIT 0, 10 ";
$res=sql_query($sql);
for ($i=0; $row=sql_fetch_array($res); $i++){
echo $row[wr_2]."<br>";
}
대략 이런식으로?
다음과 같은 방법도 있으니 참고해 보세요
$sql = "SELECT * FROM 102 WHERE wr_2 IN (SELECT wr_2 FROM 101 WHERE wr_14 = '{$row2['wr_14']}') ORDER BY wr_id DESC LIMIT 0, 10";
$res = sql_query($sql);
for ($i = 0; $row = sql_fetch_array($res); $i++) {
echo $row['wr_2'] . "<br>";
}
$row2['wr_14'] 값에 해당하는 102 테이블의 데이터를 선택하게 되며
101 테이블의 서브쿼리에서 wr_14 값을 동적으로 사용하기 위해 작은따옴표(')로 감싸주었고,
$row2['wr_14'] 변수에 원하는 값을 할당하면 해당 값에 맞는 102 테이블의 데이터를 검색할 수 있지 않을까 합니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.