매칭 쿼리문 질문입니다.. 채택완료
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'];
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
위 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개가 불러지겠죠
원하시는 기능을 좀더 세분화 하거나 구조적으로 변경하셔야 할것 같습니다.
답변에 대한 댓글 1개
어제 채택을 드려서 이번에는 마르스컴퍼님께 드렸어요 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
저는 다른방법으로 해결했는데 이런방법도 있군요 참고하겠습니다!!