안녕하세요.
1:n 형태의 테이블끼리 group by로 값을 갖고 오려고 합니다.
a 테이블엔
idx, name1, fk
1 aa 1
2 bb 3
3 cc 5
4 dd 7
b 테이블엔
idx, a_idx, name2
1 1 aaa
2 1 bbb
3 2 aa
4 3 bbbbb1
5 3 bbbbb2
6 3 bbbbb3
7 4 4444
이렇게 되어 있습니다.
idx, name1, a_idx, name2
1 aa 1 aaa
2 bb 3 aa
3 cc 5 bbbbb2
4 dd 7 4444
이런 형태를 출력하고 싶습니다.
select a.idx, a.name1, b.a_idx, b.name2 from a left join b on a.idx = b.a_idx group by a.idx, a.name1, b.a_idx, b.name2
이렇게 하니까 4개가 아니고 훨씬 많이 나오네요.
mysql에서는 group by를 그냥 a.idx를 하면 되던데 mssql에서는 저렇게 하니 안 되네요.
답변 부탁드립니다.
FK 를 Join 에서 안 엮었네요 ㅡ,ㅡ;;;
하기처럼 쿼리를 바꾸시면 됩니다.
---쿼리시작---
select a.idx
, a.name1
, b.a_idx
, b.name2
from a left join b on a.idx = b.a_idx
And a.fk = b.idx
group by a.idx
, a.name1
, b.a_idx
, b.name2
---쿼리끝---