Unbekanntes Tabellenfeld in Where-Clausel

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Unbekanntes Tabellenfeld in Where-Clausel

    Hallo zusammen

    Bei der folgenden Abfrage erhalte ich die Meldung, dass sich ein unbekanntes Tabellenfeld in der Where-Clausel befinden...

    PHP-Code:
    SELECT SP.spiel_id,
                     
    SP.runde,
                              
    SP.datum,
                              
    SUBSTRING(SP.spiel_id,4,4) AS saison,
                              
    DATE_FORMAT(SP.datum'%d.%m.%Y') AS MyDatum,
                              
    SP.zeit,
                              
    TIME_FORMAT(zeit'%k.%i') AS MyZeit,
                              
    H.vereinsname AS hvereinsname,
                              
    G.vereinsname AS gvereinsname
                        FROM tblspielplan_nla SP
                        LEFT OUTER JOIN tblvereine H ON SP
    .heim H.id_verein
                        LEFT OUTER JOIN tblvereine G ON SP
    .gast G.id_verein
                        WHERE SP
    .datum='$gdatum' AND saison='$lsaison'" 
    Ich denke mal, dass es daran liegt, weil ich in der Where-Clausel auf ein Feld (saison) zugreife, dass ich in der Abfrage berechnet habe (SUBSTRING(SP.spiel_id,4,4) AS saison). Kann man das irgendwie umgehen, damit man die Abfrage anhand des Feldes saison eingrenzen kann? Oder liegt der Fehler an einem anderen Ort?

    Danke für eure Hilfe.

  • #2
    HAVING ist wohl deine lösung...
    PHP-Code:
    $sql "SELECT      SP.spiel_id,
                        SP.runde,
                        SP.datum,
                        SUBSTRING(SP.spiel_id,4,4) AS saison,
                        DATE_FORMAT(SP.datum, '%d.%m.%Y') AS MyDatum,
                        SP.zeit,
                        TIME_FORMAT(zeit, '%k.%i') AS MyZeit,
                        H.vereinsname AS hvereinsname,
                        G.vereinsname AS gvereinsname

            FROM        tblspielplan_nla SP
                            LEFT OUTER JOIN tblvereine H ON SP.heim = H.id_verein
                            LEFT OUTER JOIN tblvereine G ON SP.gast = G.id_verein
            
            WHERE       SP.datum='"
    .$gdatum."'
            
            HAVING      SUBSTRING(SP.spiel_id,4,4) = '"
    .$lsaison."'"
    UNGETESTET
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Funzt... Danke dir, wusste nicht, dass man WHERE und HAVING kombinieren kann.

      Kommentar


      • #4
        ja das geht, wie man sieht.

        goldene regel: wenn du FKTs in where haben musst, MUSST du HAVING nehmen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar

        Lädt...
        X