매칭 쿼리문 질문입니다..

매칭 쿼리문 질문입니다..

QA

매칭 쿼리문 질문입니다..

답변 2

본문

iBNeer님과 마르스컴퍼니님 도움으로 하나를 더 배웠는데 여기서 궁금한게 있습니다

sql = "SELECT B.wr_1, B.wr_2, B.wr_4, A.* FROM g5_write_testa A inner join g5_write_testb B on B.wr_1 = A.wr_1 and B.wr_2 = A.wr_2 and B.wr_4 = A.wr_4 where A.wr_1 <> '' and A.wr_2 <> '' and A.wr_4 <> ''";
$res = sql_query($sql);
for($i=0;$list=sql_fetch_array($res);$i++){
echo "A - wr_id=> ".$list['wr_id']."<br>"; 

echo "A - wr_subject=> ".$list['wr_subject']."<br>";

echo "A - wr_content=> ".$list['wr_content']."<br>";

이렇게 하고 글을 작성하면 맞게 출력이 되는데 그런데 한번더 글을 을 작성하면 처음 과 두번째 글내용에 서로 2개의 내용이 출력됩니다
예)
testb에서 1번글 작성 수박 사과 
글내용 --> 수박 사과

testb에서 2번 글 작성 바나나 복숭아
1번 글내용 --> 바나나 복숭아
                    수박 사과
2번 글내용 --> 바나나 복숭아
                    수박 사과

 

1번 하고 2번하고는 연관이 없는데 글내용안에는 다 같이 보이는걸 봐서는 어딘가 잘못인데 어딘지 잘모르겠습니다...

아무래도 배우는 입장이라서 그런지 많이 어렵긴합니다 order by 와 limit 를 해도 잘안되고....

조금만 쉽게 알려주실 선생님을 기다리겠습니다...

 

이 질문에 댓글 쓰기 :

답변 2

sql = "
  SELECT B.wr_1, B.wr_2, B.wr_4, A.* 
    FROM g5_write_testa A 
           inner join g5_write_testb B on B.wr_1 = A.wr_1 and B.wr_2 = A.wr_2 and B.wr_4 = A.wr_4 
   WHERE A.wr_id = '{$wr_id}'
";

 

$row = sql_fetch($sql);


echo $row['wr_subject'];
echo $row['wr_content'];

위 sql 문은

A 의 wr_1, wr_2, wr_4  

B 의 wr_1, wr_2, wr_4

가 동일한거면 가져오기 라는 내용으로 이해하시면 됩니다.

1개 비교가 아닙니다 전체 데이터입니다.

전체 데이터에서 wr_1, wr_2, wr_4 가 같은것 가져오기 입니다.

 

따라서

A 에 1개, B 에 2개 (wr_1,wr_2,wr_4 동일) 이라면 총 3개가 불러지겠죠

 

원하시는 기능을 좀더 세분화 하거나 구조적으로 변경하셔야 할것 같습니다.

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 30
© SIRSOFT
현재 페이지 제일 처음으로