Gast Geschrieben 16. Juni 2004 Teilen Geschrieben 16. Juni 2004 Hallo Allerseits, kann mir bitte jemand bei folgendem Problem helfen? Ich habe zwei tabellen: einmal user & todo. In user sowie todo ist jeweils das feld user_id, über die beide tabellen miteinander mittels JOIN verknüpft werden. in todo befindet sich ein zusätzliches feld "zustaendig". beim verknüpfen des feldes user.user_id mit dem feld todo.zustaendig kommt es zu u.g. fehlermeldung. SELECT * FROM user JOIN todo ON user.user_id = todo.user_id JOIN todo ON user.user_id = todo.zustaendig LIMIT 0 , 30 MySQL meldet: #1066 - Not unique table/alias: 'todo' Kann mir bitte jemand helfen, wie ich das problem lösen kann? besten dank, marcus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 16. Juni 2004 Teilen Geschrieben 16. Juni 2004 SELECT * FROM user JOIN todo ON user.user_id = todo.user_id JOIN todo ON user.user_id = todo.zustaendig LIMIT 0 , 30 MySQL meldet: 1066 - Not unique table/alias: 'todo' Die Loesung steht doch quasi in der Fehlermeldung. Du kannst natuerlich nicht zweimal die gleiche Tabelle Joinen, ohne den Tabellen ein Alias zu geben. Woher sollte dein System denn sonst auch wissen was zum Beispiel mit todo.zustaendig gemeint ist? Du Joinst todo ja schliesslich zweimal, also ist spaetestens da nicht mehr klar auf welche todo Tabelle du dich beziehst. Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Geschrieben 16. Juni 2004 Teilen Geschrieben 16. Juni 2004 Die Loesung steht doch quasi in der Fehlermeldung. Du kannst natuerlich nicht zweimal die gleiche Tabelle Joinen, ohne den Tabellen ein Alias zu geben. Woher sollte dein System denn sonst auch wissen was zum Beispiel mit todo.zustaendig gemeint ist? Du Joinst todo ja schliesslich zweimal, also ist spaetestens da nicht mehr klar auf welche todo Tabelle du dich beziehst. Goos Vielen Dank deine Antwort. Dass mit den Aliasen funtzt Aber leider wird nicht das Ergebnis zurückgeliefert, das ich haben will. Wohlmöglich habe ich einen Denkfehler Also: Wie gesagt, befindet sich in der tabelle "user" das feld user_id, in der tabelle "todo" die felder user_id und zustaendig. Der erste User z.b. bekommt die user_id 1 in tabelle "user" zugewiesen. die felder user_id und zustaendig der tabelle todo sollen mit dem feld user_id der tabelle user verknüpft werden. Ist das möglich? vielleicht hilf das weiter: SELECT * FROM user AS U JOIN todo AS T ON U.user_id = T.user_id LEFT JOIN todo AS V ON U.user_id = V.zustaendig; Danke noch mal, marcus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 16. Juni 2004 Teilen Geschrieben 16. Juni 2004 Aber leider wird nicht das Ergebnis zurückgeliefert, das ich haben will. Wohlmöglich habe ich einen Denkfehler marcus Aehmmm, du hast auch noch nicht gesagt, was du eigentlich fuer ein Ergebnis erwartest Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Geschrieben 16. Juni 2004 Teilen Geschrieben 16. Juni 2004 Aehmmm, du hast auch noch nicht gesagt, was du eigentlich fuer ein Ergebnis erwartest Goos die sache ist folgende: es gibt zwei tabellen. in der tabelle "user" stehen die benutzerinfos, wie z.b. name & email. in der tabelle todo stehen aufgabeninfos, wie z.b. wer eine aufgabe erteilt und wem sie zugeordnet werden soll. nun versuche ich die felder so miteinander zu verknüpfen, dass der SELECT-statement funzt. Sprich user_id von der tabelle "user" soll über die felder user_id & zustaendig der tabelle todo verknüpft werden. Aber ich krieg das einfach nich gebacken Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 16. Juni 2004 Teilen Geschrieben 16. Juni 2004 Sprich user_id von der tabelle "user" soll über die felder user_id & zustaendig der tabelle todo verknüpft werden. Dein Statement von oben verknuepft das doch so wie du es sagst, wenngleich ich auch zugeben muss, dass man mit dem Ergebnis wohl nicht viel anfangen kann. Ich kann jetzt mal nur raten, aber ich vermute, dass es deinen Vorstellungen naeher kommt, wenn du nicht beide Joins an ein Select haengst. Es waere wohl sinvoller 2 Selects mit jeweils einem Join und dafuer dann ein Union dazwischen zu verwenden. Also eher so in die Richtung: SELECT distinct * FROM user U JOIN todo T ON U.user_id = T.user_id UNION SELECT distinct * FROM user U JOIN todo V ON U.user_id = V.zustaendig[/PHP] Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.