Zum Inhalt springen

mySQL -> Verknüpfung zwei Tabellen: Not unique table/alias:


Gast

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...