mysql 쿼리 질문
본문
총 세개의 테이블이 있습니다.
회원테이블, 관리자 테이블, 브랜드 테이블
회원 테이블(member)
m_seq | id |
1 | admin |
브랜드 테이블
b_seq | name |
1 | 아디다스 |
2 | 나이키 |
관리자 테이블
seq | m_seq(회원테이블) | b_seq(브랜드 테이블) |
1 | 1 | 1 |
2 | 1 | 2 |
회원 테이블에 있는 admin이 두개의 브랜드를 관리하여
관리자 테이블에 각각 들어가있습니다.
이걸 리스트에 노출시킬때
seq | id | name |
1 | admin | 아디다스, 나이키 |
이렇게 노출시키려면 어떻게 해야할까요??
답변 2
select 회원.m_seq as seq, 회원.id, group_concat(브랜드.name) as name
from 회원, 관리자, 브랜드
where 회원.m_seq=관리자.m_seq and 관리자.m_seq=브랜드.m_seq
group by 회원.m_seq
$sql = " select A.m_seq, A.id, B.b_seq from member A, adminTable B where A.m_seq = B.m_seq AND A.id='admin' ";
$result = sql_query($sql);
이렇게 해서 회원과 관리자테이블을 조인하시고
여기서 얻어진 결과물의 b_seq를 통해서 이름을 불러오시면
for($i=0; $row=sql_fetch_array($result);$i++){
echo $row['m_seq'].$row['id'];
$sql2 = " select * from 브랜드테이블명 wehre b_seq='".$row['b_seq']."' ";
$result2 = sql_query($sql2);
for($j=0; $row2=sql_fetch_carray($result2); $i++) {
echo $row['name'];
}
echo "<br>";
}
이런식으로 조인해서 불러오시는게 편하지 않을까요?
세개를 조인할 수 도 있지만, 두개의 조인한 두번의 쿼리로 하는게 어떨까 생각해봅니다.