MAresa P.: Fehler in SQL Query

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?

  1. 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

    --
    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
  2. 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

    1. 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

      --
      Nein, wir frieren unsere Hühner nicht auf Gletschern fest.
      Selfcode: sh:) fo:) ch:) rl:) br:> n4:| ie:{ mo:) va:) de:] zu:} fl:( ss:) ls:&
      1. 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

        1. 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

          --
          Nein, wir frieren unsere Hühner nicht auf Gletschern fest.
          Selfcode: sh:) fo:) ch:) rl:) br:> n4:| ie:{ mo:) va:) de:] zu:} fl:( ss:) ls:&
          1. 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