2009-12-14 1 views
2

"특별한 요구"를 선택 GROUP_CONCAT 다음SQLite는 내가 할, SQLite는 함께 GROUP_CONCAT을 사용하는 방법을 알고

id - f1 - f2 - f3 
1 - 1 - a - NULL 
2 - 1 - b - NULL 
3 - 2 - c - NULL 
4 - 2 - d - NULL 

선택 아이디, F1, GROUP_CONCAT (F2), F1하여 테이블 그룹에서 F3

result: 
2 - 1 - a,b - NULL 
4 - 2 - c,d - NULL 

사용자가 볼 수 있듯이 예상되는 동작 인 ID 1과 3이 삭제되었습니다. 하지만 필요 :

1 - 1 - a - a,b 
2 - 1 - b - a,b 
3 - 2 - c - c,d 
4 - 2 - d - c,d 

그래서, 모든 레코드가 반환하고 다른 필드 (F3)가 GROUP_CONCAT

이이 SQLite는에서 할 수있는 방법을 어떤 생각으로 업데이트?

당신에게

답변

3

확실하지 당신이 원하는, 그러나 여기가는 이유 : 우아함

select 
    outer_t.id 
,outer_t.f1 
,outer_t.f2 
,inline_view.groupfoo 
from t as outer_t 
left join (
    select 
     f1 
    ,group_concat(f2) as groupfoo 
    from t 
    group by f1 
) inline_view on inline_view.f1 = outer_t.f1 
; 
+0

+1 : 실적이 좋은 옵션 –

+0

감사합니다. 예상대로 작동합니다. – user230781

4

사용 내장 SQL 문을 감사

select id, f1, f2, (select group_concat(f2) from t t2 where t2.f1 = t1.f1) 
from t t1 
+1

+1 그것은 너무 좋은 달콤한되고 . – feihtthief