본문 바로가기

DB/MYSQL

MYSQL 에서 VIEW 테이블 만들기

회사에서 고민하다 서브쿼리 및 조인문을 만들기 귀찮음으로 인해

한방에 해결할 VIEW 테이블을 만들었다...

뷰테이블에 알고리즘이 들어가 속도에 영향을 준다고 한다.

나는 다른사람의 테스트 결과 가장 빠른것으로 결론 난 temptable 알고리즘을 사용했다.

사용법은 ALGORITHM=temptable 이것만 추가해주면 된다.

select 문으로 보여줄 칼럼을 선택하고

from 절에 left join 을 썻다. left join의 사용법은

table
left join (tabl1,tabl2) on (tabl1.field=table2.field and table.field=table2.field)

where
  table.field = tabl1.field

left join (tabl1,tabl2) on (tabl1.field=table2.field and table.field=table2.field)
위부분의 table table3 table3 의 순서는 상관없다 조건만 맞추면 된다.

select 문의 칼럼 이름은 중복될수 없다.

where 절은 일반 where 절과 같다.

그래서 최종 나온것이

아래와 같다.

이걸로 이제 쉽게 쿼리를 날릴수 있게 되었다.

create ALGORITHM=temptable view VIEW_MEMBER AS
SELECT
 so_member.m_seq, so_member.m_userid,so_member.m_name,so_member.m_level,so_member.m_realname,so_member.m_regdate,so_member.s_serveruse,so_member.m_phone1,so_member.m_phone2,so_member.m_phone3,so_member_level.g_seq,so_member_level.g_level,so_member_level.g_grade,so_member_level.addpoint,so_point.total_point
from
 so_member
 left join (so_member_level,so_point) on (so_member.m_level=so_member_level.g_level and so_member.m_userid = so_point.m_userid)
where
 so_member.m_level=so_member_level.g_seq