Fehler in SQL Query
MAresa P.
- datenbank
Hallo,
ich bekomme bei folgendem SQL Query immer diese Fehlermeldung, wenn ich diesen am meine MySQL Datenbank sende:
You have an error in your SQL syntax near '( tpxprozessowner INNER JOIN user ON tpxprozessowner.tpxprozessowner_user_benut' at line 1
SELECT tpxprozess. * , user. * FROM tpxprozess INNER JOIN ( tpxprozessowner INNER JOIN user ON tpxprozessowner.tpxprozessowner_user_benutzername = user.user_benutzername ) ON tpxprozess.tpxprozess_id = tpxprozessowner.tpxprozessowner_tpxprozess_id WHERE ( ( ( tpxprozess.tpxprozess_teilprojekt_id ) = 1 ) )
Ich kann den Fehler nicht finden. Woran liegts?
Halihallo MAresa
SELECT tpxprozess. * , user. * FROM tpxprozess INNER JOIN ( tpxprozessowner INNER JOIN user ON tpxprozessowner.tpxprozessowner_user_benutzername = user.user_benutzername ) ON tpxprozess.tpxprozess_id = tpxprozessowner.tpxprozessowner_tpxprozess_id WHERE ( ( ( tpxprozess.tpxprozess_teilprojekt_id ) = 1 ) )
Versuch es ohne Verschachtelung (die '(' und ')'). In der FROM-Klausel gibt es keine
Verschachtelung von Tabellen-Joins, denn das wäre redundant (wie auch immer du
Verschachtelst, es wird immer der selbe Join gebildet). Einfach alles nacheinander
schreiben, ohne Klammern (in FROM).
Viele Grüsse
Philipp
Hi, hallo
tpxprozessowner
ist das ne Tabelle ... die ist weder nach SELECT noch nach FROM angesprochen, sollte somit dem SQL Prozessor nicht bekannt sein
wenn du von mehreren Tabellen SELECTEN willst, sollten imho auch hinter FROM die Tabellen alle aufgeführt werden, bei dir dann: FROM tpxprozess, user
Tschau, tschüß,
Frank
Hi Frank
wenn du von mehreren Tabellen SELECTEN willst, sollten imho auch hinter FROM die Tabellen alle aufgeführt werden, bei dir dann: FROM tpxprozess, user
Ohm... Lies bitte dringendst nach was JOINs sind und wie sie funktionieren bevor du sowas schreibst.
Das Problem liegt wohl eher an tabellenname. *, da darf kein Blank hin sondern muss stehen tabellenname.*. Über das * steht auch schon reichlich im Archiv warum man es nicht verwenden sollte.
Gruss Daniela
Hi, hallo
ich hab ja nicht über den Join geredet sondern über das SELECT am Anfang ... dachte ich eigentlich ... und wenn da steht SELECT aa.*, bb.* FROM aa dann sieht mir das nicht ganz koscher aus. Woher wird denn bb.* (user.*) selektiert ?
ist dann "tpxprozessowner" der Name/Alias des innteren Joints? sieht mir jetzt so aus.
man kann sich ja auch mal verzetteln..
Tschau,
Frank
Hi Frank
ich hab ja nicht über den Join geredet sondern über das SELECT am Anfang ... dachte ich eigentlich ... und wenn da steht SELECT aa.*, bb.* FROM aa dann sieht mir das nicht ganz koscher aus. Woher wird denn bb.* (user.*) selektiert ?
Von den Tabellen die in den JOINs sind, die Joins gehören zum FROM...
Dazu wie Philipp sagte, die Verschachtelung ist völlig falsch, Klammern dürfen wohl hin, aber nicht in Art wie sie da sind.
Ich habe nicht aus Spass gesagt, lies es durch.
Gruss Daniela
Hi, hallo
Ich habe nicht aus Spass gesagt, lies es durch.
ja, sorry, tut mir leid ... dass ich nicht gleich auf's Wort gehorcht habe :-(
Mir war die Benutzung der Joins als FROM Ressource nicht auf anhieb geläufig, da ich es so noch nie gebraucht habe ... ganz doof bin ich ja nun auch nicht, daß ich überhaupt nicht weiß was Inner Join ist.
Manchmal sieht man halt den Wald vor lauter Bäumen nicht ... jetzt bin ich halt um eine Idee klüger .. :-) dank dir!
Hattest du das Gefühl, ich hätte dich "nicht ernst" bzw. spassig genommen? Dann war das aber ziemlich der Holzweg.
Tschau, tschüß,
Frank