Ergebnis 1 bis 6 von 6

Thema: Join

  1. #1
    iop
    iop ist offline
    TP-Junior
    Registriert seit
    Jan 2010
    Beiträge
    11

    Join

    Hallo zusammen,

    ich habe ein Problem, dass ich alleine wohl nicht lösen werde und brauche eure Hilfe. Es geht um einen Posteingang/Postausgang.
    Folgende Tabellen habe ich:
    Code:
    tab_message
    ---------------
    msgID
    fromUser
    toUser
    text
    ....
    
    tab_user
    ---------------
    id
    benutzername
    ...
    Ich habe jetzt zwei grundlegene Probleme, nämlich Postein- und ausgang. Hier frage ich jetzt erstmal nach dem Posteingang, den Rest kriege ich hoffentlich analog dazu alleine hin wenn ich alles verstanden habe...
    So, also ich möchte alle Nachrichten, die
    Code:
     tab_message.toUser = tab_user.id WHERE tab_user.benutzername = $_SESSION['benutzername']
    sind, quasi alle nachrichten, die an den user gerichtet sind, der die Seite aufruft (das habe ich hinbekommen, siehe code weiter unten). Allerdings möchte ich gleichzeitig in diesem Aufruf noch den Benutzernamen des Users
    Code:
     SELECT tab_user.benutzername WHERE tab_message.fromUser= tab_user.id
    , der die Nachricht an den aufrufenden User verschickt hat.
    Ist das überhaupt in einer Abfrage möglich? Oder muss ich dann zwei Abfragen in einer machen?

    Hier die funktionierende Abfrage, die den Posteingang holt, allerdings ohne den Bnutzernamen des Senders.
    PHP-Code:
    $result mysql_query("SELECT tab_message.msgID,  
    tab_message.fromUser, 
    tab_message.toUser, 
    tab_message.msgType,
    tab_message.parentMsg,
    tab_message.datetime,
    tab_message.text,
    tab_message.gelesen,
    tab_user.id,
    tab_user.benutzername
    FROM tab_message 
    LEFT JOIN tab_user
    ON tab_message.toUser = twinkle_user.id
    WHERE tab_user.benutzername = '" 
    .mysql_real_escape_string($_SESSION['benutzername']). "'
    ORDER BY tab_message.datetime DESC"
    ); 
    Danke schon einmal im Voraus für jede Anregung und Hilfe!

  2. #2
    TP-Moderator Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.666
    Du kannst die Tabelle tab_user auch zwei Mal joinen:
    Code:
    $result = mysql_query("SELECT tab_message.msgID,  
    tab_message.fromUser, 
    tab_message.toUser, 
    tab_message.msgType,
    tab_message.parentMsg,
    tab_message.datetime,
    tab_message.text,
    tab_message.gelesen,
    a.id,
    a.benutzername,
    b.benutzername as absender
    FROM tab_message 
    LEFT JOIN tab_user a
    ON tab_message.toUser = a.id
    LEFT JOIN tab_user b
    ON tab_message.fromUser = b.id
    WHERE a.benutzername = '" .mysql_real_escape_string($_SESSION['benutzername']). "'
    ORDER BY tab_message.datetime DESC");
    Grüße vom Griechen,
    Cybergreek!

    everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht

  3. #3
    iop
    iop ist offline
    TP-Junior
    Registriert seit
    Jan 2010
    Beiträge
    11
    Wow! Du hast keine zehn Minuten gebraucht... und ich sitze hier seit gestern abend, bin sicher, dass es mit zwei mal Joinen der Tabelle geht, kriege es aber nicht hin...
    Hab vielen Dank dafür! Und jetzt schaue ich mal, ob ich das für den Postausgang auch hinbekomme

  4. #4
    iop
    iop ist offline
    TP-Junior
    Registriert seit
    Jan 2010
    Beiträge
    11
    Super, es klappt auch wunderbar für den Postausgang. Bin begeistert, Danke nochmal!

  5. #5
    iop
    iop ist offline
    TP-Junior
    Registriert seit
    Jan 2010
    Beiträge
    11
    Hey,

    ich nochmal, wieder mit einem Join Problem. Ich blicke da irgendwie nicht durch, lese schon seit Tagen Manuals und Tutorials über Joins und werde nicht schlau daraus.

    Folgende Tabellen habe ich:
    Code:
    tab_user
    ----------
    id
    username
    
    tab_entry
    -----------
    userid
    date
    text
    nr
    
    tab_assoc
    -----------
    userid
    associd
    Was ich erreichen will:
    Die Tabelle tab_assoc beinhaltet alle User und die Einträge, die sie sich gemerkt haben. In meiner Ausgabe möchte ich einfach bei der Ausgabe aller Einträge wissen, ob ein Eintrag auf der Merkliste des gerade angemeldeten Users ist.

    Ich möchte also alle Einträge (aus tab_entry) angezeigt bekommen. Zu jedem Eintrag möchte ich den Benutzernamen des Users, der den Eintrag verfasst hat, also
    Code:
    tab_entry.userid = tab_user.id
    . Das funktioniert. Zudem möchte ich jetzt also neu dazu in einer Variable "$merken" mit "true" vermerkt bekommen, wenn
    Code:
    tab_entry.userid = tab_assoc.userid $$ tab_entry.nr = tab_assoc.associd
    . Sollte das nicht gegeben sein, soll die variable $merken auf false oder NULL gesetzt werden. Ich glaube, die Sache mit true und false kann ich so vergessen, aber ich habe es zur Verdeutlichung meines Problems so hingeschrieben.

    Ich habe den ein oder anderen Ansatz, allerdings wird mir immer entweder ein Fehler in der Abfrage angezeigt, oder ich bekomme einfach etwas falsches heraus. Ist LEFT JOIN dabei überhaupt das richtige Mittel? Wie kann ich die Ausgabe so erledigen, wie ich es oben beschrieben habe? Es wäre schön, wenn ihr mir nochmal helfen könntet.

    Danke schon einmal im Voraus!

  6. #6
    iop
    iop ist offline
    TP-Junior
    Registriert seit
    Jan 2010
    Beiträge
    11
    Hey

    also ich habe es jetzt mit zwei Abfragen gemacht und dann jeweils einen Wert generiert pro Spalte, der mir sagt, ob ein Eintrag in der Merkliste ist oder nicht. Wenn trotzdem noch jemand weiß, wie man das mit einer Abfrage lösen kann, wäre ich ihm sehr verbunden....

    Danke nochmal!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Ausgabe bei JOIN
    Von StephanF im Forum Traum-Dynamik
    Antworten: 4
    Letzter Beitrag: 10.02.2007, 15:47
  2. ... die Sache mit dem Join !
    Von media-team im Forum Traum-Dynamik
    Antworten: 19
    Letzter Beitrag: 22.02.2005, 18:51
  3. JOIN mit 3 Tabellen
    Von NeTHippie im Forum Traum-Dynamik
    Antworten: 2
    Letzter Beitrag: 21.02.2005, 19:20
  4. Join
    Von M@tzM@N im Forum Traum-Dynamik
    Antworten: 8
    Letzter Beitrag: 23.03.2003, 13:39

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51