쿼리로 뽑아낸 데이터를 다른 테이블과 비교해서 또 뽑으려면.... 정보
쿼리로 뽑아낸 데이터를 다른 테이블과 비교해서 또 뽑으려면....
본문
$sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id
from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
where c.gr_id = 'club'
and a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' and a.wr_id = a.wr_parent
order by a.bn_id desc limit 0,$rows";
from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
where c.gr_id = 'club'
and a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' and a.wr_id = a.wr_parent
order by a.bn_id desc limit 0,$rows";
$result = sql_query($sql);
--> 이곳에서 한번더 거르고 싶음
$sql2 = select a.*, b.* 위에서나온데이터 a, 원하는테이블 b where a.wr_id=$result(wr_id)
????
-->
for ($i=0; $row = sql_fetch_array($result); $i++)
{
$tmp_write_table = $g4[write_prefix].$row[bo_table];
{
$tmp_write_table = $g4[write_prefix].$row[bo_table];
첫번째로 나온 것을 for 문으로 돌리기 전에 원하는 게시물을 제외하고자 합니다.
$row2 = sql_fetch(" select a.*, b.cn_view_level from $tmp_write_table a, nc_menu b where a.wr_id = '$row[wr_id]' and a.ca_name = b.cn_name and b.cn_view_level <= 80 ");
맨위의 쿼리에서 나온 것을 바로위에 쿼리문과 합쳐서 데이터를 뽑은 다움 for문을 돌릴려면 어떻게 해야 하나요??
댓글 전체
1. 첫번째로 나온 것을 for 문으로 돌리기 전에 원하는 게시물을 제외하고자 합니다.
==> 결과값을 구한 다음 제외시킬 것이 아니라 아예 제외시킨 결과값을 구하는 것이 좋지 않을까요?
위에서 제시한 예문에서
$sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id
from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
where c.gr_id = 'club'
and a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' and a.wr_id = a.wr_parent
order by a.bn_id desc limit 0,$rows";
where 이하의 조건을 더 강화하면 처음부터 원하지 않는 게시물을 빼고 얻을 수 있겠지요?
조건으로 제외시키기 어려운(?) 이유가 있는지요?
2. 처음 얻은 결과값과 비교해서 필요한 데이터만 얻으려면 위 제시 예문에서
$row2 = sql_fetch(" select a.*, b.cn_view_level from $tmp_write_table a, nc_menu b
where a.wr_id = '$row[wr_id]' and a.ca_name = b.cn_name and b.cn_view_level <= 80 ");
==> 여기의 where 이하의 구문에서 얻기 원하는 조건의 값을 처음얻은 결과값과 함께 조건을 걸면 되겠지요. 지금도 a.wr_id = '$row[wr_id]' 이렇게 하셨네요.
다른 필드도 이처럼 조건을 걸어 얻은 결과를 for문 돌리면 될것 같은데.....
현재 문의하신 부분은 이런의미로 말씀하신 것 같은데...
헛다리 집었나? ^^
==> 결과값을 구한 다음 제외시킬 것이 아니라 아예 제외시킨 결과값을 구하는 것이 좋지 않을까요?
위에서 제시한 예문에서
$sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id
from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
where c.gr_id = 'club'
and a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' and a.wr_id = a.wr_parent
order by a.bn_id desc limit 0,$rows";
where 이하의 조건을 더 강화하면 처음부터 원하지 않는 게시물을 빼고 얻을 수 있겠지요?
조건으로 제외시키기 어려운(?) 이유가 있는지요?
2. 처음 얻은 결과값과 비교해서 필요한 데이터만 얻으려면 위 제시 예문에서
$row2 = sql_fetch(" select a.*, b.cn_view_level from $tmp_write_table a, nc_menu b
where a.wr_id = '$row[wr_id]' and a.ca_name = b.cn_name and b.cn_view_level <= 80 ");
==> 여기의 where 이하의 구문에서 얻기 원하는 조건의 값을 처음얻은 결과값과 함께 조건을 걸면 되겠지요. 지금도 a.wr_id = '$row[wr_id]' 이렇게 하셨네요.
다른 필드도 이처럼 조건을 걸어 얻은 결과를 for문 돌리면 될것 같은데.....
현재 문의하신 부분은 이런의미로 말씀하신 것 같은데...
헛다리 집었나? ^^

1. 합쳐서 제외한 값을 구하면 더 좋겠지만 그렇게 될거다는 생각을 하지 못했습니다.
2. 헛다리는 아닙니다
감사하고요. 해보고 안되면 또 질문합니다. ^^
2. 헛다리는 아닙니다
감사하고요. 해보고 안되면 또 질문합니다. ^^