표에 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
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