Frage

Ich weiß, wie man Group_Concat mit SQLite verwendet, um Folgendes zu tun:

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

Wählen Sie ID, F1, Group_Concat (F2), F3 aus der Tabellengruppe durch F1

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

Wie Sie sehen können, werden die 1 und 3 der ID fallen gelassen, was das erwartete Verhalten ist. Aber ich würde brauchen:

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

Jeder Datensatz wurde zurückgegeben, und ein anderes Feld (F3) wurde mit dem Group_Concat aktualisiert

Irgendeine Idee, wie dies in SQLite getan werden könnte?

Vielen Dank

War es hilfreich?

Lösung

Ich bin mir nicht sicher, warum du das willst, aber hier geht es:

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
;

Andere Tipps

Verwenden Sie eine eingebettete SQL -Anweisung

select id, f1, f2, (select group_concat(f2) from t t2 where t2.f1 = t1.f1)
from t t1
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top