JOIN Problem mit 2 Fremdschlüsseln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JOIN Problem mit 2 Fremdschlüsseln

    Hallo,

    ich kann mein Problem schlecht allgemein beschreiben, also mal ein einfaches Beispiel:

    Ich habe eine Tabelle "Nachrichten" und eine Tabelle "User". "Nachrichten" hat die Felder NachrichtenID, Nachricht, FromUserID, ToUserID. "User" hat die Felder UserID und Username.

    Wenn ein Datensatz in "Nachrichten" abgelegt wird, wird im FromUserID die UserID des Users gespeichert der abschickt, die vom Empfänger in ToUserID. Soweit sogut.

    Ich möchte jetzt gern mit einem mySQL query die Nachricht haben, sowie den Username des FromUser und des ToUser. Um der in der Nachrichten Tabelle vorhandenen UserID nen User zuzuordnen, JOINe ich die User Tabelle im query.

    Allerdings gelingt es mir nur zu einer UserID (zb. der FromUserID) den Usernamen zu bekommen:

    SQL:
    SELECT n.Nachricht, u.Username FROM Nachrichten AS n LEFT JOIN User AS u ON n.FromUserID = u.UserID

    Im Ergebnis wird jetzt der korrekte Username für den FromUser angezeigt. Problematisch ist nur, das ich ja jetzt noch nen Usernamen brauche, dessen ID in ToUserID steht. Ich hab einfach keinen Plan wie ich das Umsetzen kann, vielleicht kann mir jemand von euch helfen !

    Danke im Vorraus,
    laZee

  • #2
    Re: JOIN Problem mit 2 Fremdschlüsseln

    was willst du machen? like email oder privatnachricht!?

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

    Kommentar


    • #3
      Hallo laZee,

      du musst die User-Tabelle zweimal im Join benutzer und benennen:

      SELECT n.Nachricht, u.Username
      FROM Nachrichten AS n LEFT JOIN User AS u
      ON n.FromUserID = u.UserID
      LEFT JOIN User AS u2
      ON n.ToUserID=u2.UserID

      *ungetestet*

      Kommentar


      • #4
        Danke für die Hilfe, ich habs dann so ähnlich gelöst, aber die Sache mit den zwei LEFT JOINs war ausschlaggebend. Meine Lösung is jetz so:

        SELECT n.Nachricht, u.Username as usera, b.Username as userb

        FROM Nachrichten AS n

        LEFT JOIN User AS u ON n.FromUserID = u.UserID
        LEFT JOIN User As b ON n.ToUserID = b.UserID


        ciao, laZee

        Kommentar

        Lädt...
        X