Abfrage zu ID mit mehreren Daten

pauline1

Benutzer
Beiträge
14
Hallo, ich habe wahrscheinlich einen einfachen Problem, aber trotzdem weiß ich nicht, wie ich die Abfrage definieren soll:
Ich habe eine Tabelle wo zu einem id mehrere Datensätze existieren. Ich habe auch Tabelle mit eindeutigen ids, die einmal vorkommen und Titel. Nun möchte ich Tab 1 zu Tab 2 Verknüpfen, aber so, damit nur ein Datensatz vorkommt und dort, wo mehr Einträge sind, trotzdem im Ergebnis kommen.
Code:
Tab 1:        Tab 2:
id, key.          id          titel
1.  a.            1           ab
1.  b.            2           cd
2.  a.            3           ef
2   c
3.  d
3   f
3.  v
Lösunge sollte so aussehen:
Code:
1    a      b      null     ab
2    a      c     null     cd
3    d      f       v      ef

Wie kann ich es verknüpfen?
LG P
 
Werbung:
Du hast also diese Taellen:

Code:
andreas@[local]:5434/test# select * from t1;
 id | key
----+-----
  1 | a
  1 | b
  2 | a
  2 | c
  3 | d
  3 | f
  3 | v
(7 rows)

andreas@[local]:5434/test# select * from t2;
 id
----
  1
  2
  3
(3 rows)

Ist das korrekt? Die Daten sind bei Dir extremst schlecht verständlich, bitte benutze passende Formatierung, siehe auch Hilfe.

Falls das so korrekt ist: wie soll das Ergebniss aussehen? Das ist unverständlich bei Dir.
 
Hallo vielen Dank, es ist richtig, was du geschrieben hast. Lösung möchte ich, damkit es so aussieht, wenn es auch so geht:

Code:
id     key 
1        a         b      null
2       a          c      null
3       d          f       v

Im Enddefekt möchte ich, damit wenn Mehr als ein Datensatz, eine neue Spalte entsteht, wo der Datensatz eingetragen wird, oder ist das Quatsch?
Ich möchte immer einen Datensatz haben, aber mit allen key, die in tab2 sind.

Oder vielleicht gibt es eine Funktion wo ich die key nach comma zu eine Spalte eintragen kann???:
Code:
id     key  
1        a, b        
2       a, c        
3       d ,f,v
 
geht, ich verwendet aber PostgreSQL:

Code:
andreas@[local]:5434/test# select t2.id, string_agg(t1.key,', ') from t2 left join t1 on t2.id=t1.id group by t2.id order by t2.id;
 id | string_agg
----+------------
  1 | a, b
  2 | a, c
  3 | d, f, v
(3 rows)

Sinngemäß, Du mußt key aggregieren und auf die id gruppieren.
 
Hallo, danke mit verketten: stuff Funktion bei MSSQL habe ich auch das bekommen!
Vielen Dank!

Nun habe ich Tabelle:
Code:
 id | string_agg
----+------------
  1 | a, b
  2 | a, c
  3 | d, f, v

Könnte ich, gibt es so was, dass ich eine Funktion einbaue, wo mir die Spalte string_agg teilt auf einzelne Spalten, nach ","???
 
Danke ... ich schaue mal ... falls du gúte Beispiel hast, schick bitte. Danke!

Es gibt natürlich eine Menge Beispiele, aber ich verstehe sie leider nicht:(
 
Werbung:
Zurück
Oben