테이블 내 데이터로 다른 테이블의 값 가져오는 방법 0 2 786

by 꾸꾸까까 [SQL Query] 검색 질의 join [2020.01.13 14:09:43]


안녕하세요 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를 쓴것도 아니라서..

도움주시면 감사하겠습니다 (_ _)

by 마농 [2020.01.14 07:58:58]
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

 


by 꾸꾸까까 [2020.01.14 12:15:52]

친절한 답변 감사합니다!! 잘되네요 ㅠㅎ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입