안녕하세요 DB공부중인 대학생입니다.
다름아니라.. 쇼핑몰 크롤링 관련 실습 공부중 이렇게 해보려는데 좀 어려운게 있어서요.
A테이블 안에
itemIdx, tag 이라는 컬럼이 있고
itemIdx = 아이템 인덱스
tag = 품절, 입고 상태 등
이렇게 나타낸 데이터가 있고,
아이템 인덱스를 토대로 다른 테이블에서 값을 가져오고싶습니다.
B테이블 안에
itemIdx, title, tag, SiteIdx 라는 컬럼이 있고
itemIdx = 아이템인덱스
title = 아이템 이름
tag = 태그
SiteIdx = 사이트 인덱스
가 데이터로 들어가있습니다.
C 테이블 안에는
SiteIdx, content 라는 컬럼이 있고
SiteIdx = 사이트 인덱스
content = 사이트 이름
이런식으로 구성되어있습니다. 좀 복잡하죠..?
문제는 이걸 php를 이용해서 웹에서 출력해보고 싶은데..
$db_query = "SELECT * FROM A"; $db_result = mysqli_query($con, $db_query); // 그냥 db연결하는곳 while( $db_row = mysqli_fetch_array($db_result) ) echo '<tr><td>' . $db_row[ 'A.tag' ] . '</td><td>'. $db_row[ 'B.title' ] . '</td><td>' . $db_row[ 'B.tag' ] . '</td><td>' . $db_row[ 'C.content' ] . '</td></tr>';
이렇게 하면 당연히 출력이 안됩니다. 이렇게 표현하고자한다~ 예시를 들어놓은거예요
쿼리문을 어떻게 짜야할지 도저히 모르겠습니다 검색해보니까 LEFT JOIN, UNION 이런게 있어서 시도해봤는데 그런건 단순 SELECT문 출력에 fetch_array를 쓴것도 아니라서..
도움주시면 감사하겠습니다 (_ _)
SELECT a.itemIdx , a.tag tag_a , b.title , b.tag tag_b , c.SiteIdx , c.content FROM tab_a a , tab_b b , tab_c c WHERE a.itemIdx = b.itemIdx AND b.SiteIdx = c.SiteIdx ; SELECT a.itemIdx , a.tag tag_a , b.title , b.tag tag_b , c.SiteIdx , c.content FROM tab_a a INNER JOIN tab_b b ON a.itemIdx = b.itemIdx INNER JOIN tab_c c ON b.SiteIdx = c.SiteIdx ; -- 조인 --> http://gurubee.net/lecture/1020