Kleines Problem mit JOIN
Ben
- datenbank
Hi,
ich habe ein kleines Problem mit einem JOIN. Ich habe folgende Situation:
In meiner DB befinden sich 2 Tabellen: user_mail und user
In der Tabelle user_mail befindet sich u.a. die Spalte mail_sender. Diese enthält aber nur einen INT Wert, welcher der Zeile user_id in der Tabelle user entspricht.
Nun möchte ich alle Werte aus user_mail zuzüglich des Benutzernamens(user_nick) aus user auslesen. Das Ganze muss dann noch eine WHERE-Klausel enthalten, da nur EINE Mail aus user_mail ausgelesen werden soll.
Hatte mir das eigentlich so gedacht:
SELECT * FROM user_mail, user LEFT JOIN user_mail, user ON user_mail.mail_sender = user.user_id WHERE user_mail.mail_id = '$nr'
Das funktioniert so aber leider nicht. Ich bekomme folgenden mysql_error ausgegeben:
Not unique table/alias: 'user_mail'
Kann mir jemand vielleicht auf die Sprünge helfen?
Danke schonmal im Voraus und viele Grüße
Ben
Das funktioniert so aber leider nicht. Ich bekomme folgenden mysql_error ausgegeben:
Not unique table/alias: 'user_mail'
die spalte scheint nicht eindeutig zu sein. muß einen unique wert enthalten, welcher auch in der spaltendeklaration anzugeben ist.
entweder primary oder unique.
Hi,
die spalte scheint nicht eindeutig zu sein. muß einen unique wert enthalten, welcher auch in der spaltendeklaration anzugeben ist.
entweder primary oder unique.
Aber welche? user_mail ist doch eine Tabelle?
Und die Spalte mail_sender kann ich doch nicht als unique deklarieren, weil ja Leute auch mehrere Mails bekommen können. Also können dort die ID's auch öfter vorkommen oder?
Danke und Gruß
Ben
Hi,
Hatte mir das eigentlich so gedacht:
SELECT * FROM user_mail, user LEFT JOIN user_mail, user ON user_mail.mail_sender = user.user_id WHERE user_mail.mail_id = '$nr'
besser gehen duerfte es mit:
SELECT
*
FROM
user_mail
LEFT JOIN
user
ON
(user_mail.sender = user.user.id)
WHERE
(user_mail.mail_id = '$nr')
Gruss,
Ludger
Hi Ludger,
das funktioniert tadellos. Vielen Dank :-)