self join 궁금합니다 0 2 1,640

by 후룰쭈쭈빠레로 [MySQL] self join [2017.03.27 11:20:06]


그림1.JPG (33,147Bytes)

표에 l_code의 시퀀스(seq_vtx)로 나눠져서 x(x_wg), y(y_wg)좌표값을 가지고 있습니다(그림1참고). 이를 l_code로 self -join하여 하나의 컬럼에 넣으려고 합니다.

이를 위하여 self join을 하였는데 아래와 같이 하였습니다. 그런데 error - 1064에러가 뜨며 self join이 안됩니다. 

select a.l_code, a.x_wg, a.y_wg, b.x_wg, b.y_wg from tb_l_vtx a, tb_l_vtx, b on a.l_ocde = b.l_code;

예를 들어서 l_code가 1111010100이 세개의 시퀀스로 나눠져있다고 하면 하나의 컬럼을 갖으며 x, y점은 쉼표인자로 한컬럼에 하고 싶습니다. 

다음과 같은 결과값을 얻고 싶습니다. 

-----------------------------------------------------------------------------------------------------------------------------------------

l_code          |      seq_vtx      |                   x_wg                             |              y_wg

-----------------------------------------------------------------------------------------------------------------------------------------

1111010100   |       1             |     45709737, 45709756, 48709829        |      13533725, 13533725, 13533778 

by 마농 [2017.03.27 11:34:19]

1. Self Join 이 실패한 이유는 구문오류 때문입니다.
   - 변경전 : from tb_l_vtx a, tb_l_vtx, b
   - 변경후 : from tb_l_vtx a INNER JOIN tb_l_vtx b
 2. 원하시는 결과를 얻으려면?
   - Self Join 이 아닌 Group By 가 필요합니다.
   - Group_Concat 이용
  - http://www.gurubee.net/article/55512


by 후룰쭈쭈빠레로 [2017.03.27 13:19:15]

와우 감사합니다

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