Announcement

Collapse
No announcement yet.

Komplexe Join Abfrage in Stored Procedure. Unmöglich?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Komplexe Join Abfrage in Stored Procedure. Unmöglich?

    Hey Leute, beschäftige mich seit einiger Zeit mit einem Problem in SqL und möchte da es mit meiner jetzigen Lösung zu fatalen Serverzeiten kommt eine Join anweisung schreiben die das ganze mit einem mal regelt.

    Ich habe zwei Tabellen in einer SQL-Server-Database,
    Tabelle 1 enthält Daten von Spielen ( d.h. User können Spielinformationen in der Datenbank speichern)
    Tabelle 2 entählt Daten von Spielen die die User gerne haben würden

    Nun habe ich einen Benutzer, dieser startet eine Suchanfrage in der Tabelle1 und sucht nach einem Spiel.
    Scheint ja recht einfach (z.b. mit Select * From Tabelle 1 Where Spielname = @Spielname And Benutzer <> @Benutzer).

    Jetzt jedoch sollten nur Ergebnisse kommen in denen die Wunschspiele ( die aus Tabelle2) von anderen Benutzern mit den Spielen des Suchanfragestartendenbenutzers ( Aus Tabelle1 ) übereinstimmen.

    Auf gut Deutsch jeder trägt die Spiele die er gerne haben möchte in Tabelle2 ein und nur wenn der Benutzer der die Suche startet eines dieser Spiele Besitzt sollen Suchergebnisse erscheinen.

    Bisher sah meine Lösung so aus, dass ich die Spiele des Suchanfragenden in einer Auflistung speicherte, dannach die einfache Suchanfrage ausführte und bei jedem Ergebnis, für jeden einzelnen Benutzer, eine weitere Procedure aufgerufen habe die testete ob eines der Spiele des Suchanfragenden in der Wunschliste des anderen vorkommt.
    Dies führt natürlich zu ewigen Suchdauern.

    Nun die Frage gibt es eine Möglichkeit alle Ergebnisse mit mehreren Joins in einem Statement in den Griff zu kriegen?
    Ansonsten wäre ich natürlich auch sehr froh darüber wenn jemand eine Lösung vorstellen könnte in der ich weniger Procedures aufrufen muss um zu den Ergebnissen zu kommen.
    (Eine Alternative Suchabfrage die genausogut wäre wäre eine Lösung in denen Alle Suchergebnisse nach dem Spiel vorkommen aber eben sortiert in der Reihenfolge in der auch die Wunschspiele übereinstimmen)

    Ich hoffe ihr habt alles verstanden. Ansonsten fragt einfach nach.

    (Was vll. weiterhilft, bei den Joins scheiterte es im Prinzip daran, dass ich aus Tabelle1 im Prinzip in einer Anfrage zwei Bedingungen stellen möchte einmal in der der Suchanfragende vorkommt(Um seine Spiele auszulesen, zur späteren Prüfung mit den Wunschspielen der anderen) Und einmal in der er nicht vorkommt damit nur Spiele von anderen Leuten erscheinen.)

    Also für alle die sich an was kompliziertes Wagen wollen, ich bin dran gescheitert. Ich würde mich über jede Antwort sehr freuen

    Mfg euer W4hns1nn
    Zuletzt editiert von w4hns1nn; 16.09.2010, 00:35.

  • #2
    Grundsätzlich sollten mehrere Joins kein Problem sein.
    Wie sieht es mit den Indizes der Tabellen aus?

    Comment

    Working...
    X