Hilfe bei SQL-Abfrage
Geizhals » Forum » Programmierung » Hilfe bei SQL-Abfrage (28 Beiträge, 504 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Hilfe bei SQL-Abfrage
10.10.2011, 12:00:54
Hi!

Ich brüte schon seit längerem über einer komplexen SQL-Abfrage und komme noch nicht so recht auf einen grünen Zweig, vielleicht könnt ihr mir ja helfen.

Ich habe vereinfacht gesehen eine Aktivitäts-Tabelle, in der unter anderem gespeichert wird, dass jemand eine Freundschaftsanfrage angenommen hat und nun mit einer anderen Person befreundet ist:

aktivität_person = Person, die die Aktivität betrifft
aktivität_freund = Person, mit der Freundschaft geschlossen wurde

Da zu einer Freundschaft immer zwei Leute gehören, gibt es hier auch zwei Einträge (d.h. bei einem Eintrag ist die eine Person "aktivität_person" und die andere "aktivität_freund" und bei dem anderen umgekehrt)

jetzt mache ich eine Abfrage über bestimmte Aktivitäten und will, dass diese Eintrage gruppiert angezeigt werden, d.h. ich will nur einen Eintrag pro Person pro Tag haben

dazu gruppiere ich einfach nach aktivität_person und dem Tag

wenn jetzt aber viele Personen mit einer bestimmten Person Freundschaft geschlossen haben, bekomme ich für all diese Personen jeweils einen Eintrag (Person A ist mit Person Z befreundet, Person B ist mit Person Z befreundet usw.)... und das will ich auch zusammenfassen, sodass in so einem Fall ein Eintrag kommen soll, der dann bedeutet "Person Z ist mit Person A, B, C usw. befreundet" (die Details, mit wem Z nun befreundet ist, würde ich dann separat ermitteln, es geht mir nur darum, dass in so einem Fall nur ein Datensatz kommt und nicht mehrere)

habt ihr irgendeine Idee, wie man das am besten anstellen könnte?

MfG

MJFox
10.10.2011, 12:07 Uhr - Editiert von MJFox, alte Version: hier
Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
.....
Re(5): Hilfe bei SQL-Abfrage
12.10.2011, 10:17:32
jetzt will ich aber auch, dass ich nur einen Datensatz bekomme, wenn mehrere meiner Freunde mit einer mir fremden Person befreundet sind

ich nehme mal an du meinst hier, wenn einer oder mehrere deiner Freunde...

select distinct [Datum]
  from [Freundschaftstabelle] a
  where exists (select *
                  from [Freundschaftstabelle] b
                  where b.[aktivität_person] = [du Selbst]
                    and b.[aktivität_freund] = a.[aktivität_person]
                    and not exits (select *
                                     from [Freunschaftstabelle] c
                                     where c.[aktivität_person] = [du Selbst]
                                       and c.[aktivität_freund] = a.[aktivität_freund]
                                  )
                )


emefge
Infosauger
_____________________________________________________________________________

Weil die Lichtgeschwindigkeit höher als die Schallgeschwindigkeit ist, hält man viele Leute für helle Köpfe bis man sie reden hört.

"Bekomme ich bei Ihnen so einen ganz kleinen Lötkolben zum CPU reparieren?"

Wieso Realität? Ich hab doch verdammt noch mal was Besseres zu tun!



Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung