Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
JOIN Problem mit 2 Fremdschlüsseln [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
JOIN Problem mit 2 Fremdschlüsseln


 
laZee
10-06-2004, 15:07 
 
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

 
xManUx
10-06-2004, 15:30 
 
was willst du machen? like email oder privatnachricht!?

 
Patrick_PQ
10-06-2004, 16:17 
 
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*

 
laZee
11-06-2004, 11:03 
 
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:21 Uhr.