Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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

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

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

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

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.