2

次のことを行うために、Sqlite で group_concat を使用する方法を知っています。

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

f1によるテーブルグループからid、f1、group_concat(f2)、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でこれを行う方法はありますか?

ありがとうございました

4

2 に答える 2

4

埋め込みSQLステートメントを使用する

select id, f1, f2, (select group_concat(f2) from t t2 where t2.f1 = t1.f1)
from t t1
于 2009-12-14T18:09:43.927 に答える
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
;
于 2009-12-14T18:13:42.273 に答える