Robert: SQL-Code von MySQL V.4 u. V.5 nicht kompatibel ?

Hallo

Habe ein DB_Abfrage-Testscript (SQL-Code siehe unten)  das auf mysql v. 4.0.24  problemlos funktioniert ( siehe http://fally.akis.at/DB_Abfrage_Beispiel.php ) auf mysql v. 5.0.21 getestet.

Dabei bekomme ich untenstehende  SQL-Fehlermeldung.

Hat sich da etwas entscheidendes geändert bzw. welcher Fehler steckt da in meiner Abfrage ?

Wäre dankbar für Hinweise und eure Hilfe.

Robert

S Q L-C o d e:
SELECT * FROM fahrzeug_rela f INNER JOIN colour c, ps p ON c.cid = f.cid and
p.pid = f.pid WHERE f.auto like %s and c.farbe like %s and p.ps like %s
ORDER BY f.auto

Fehlermeldung:
You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'ON c.cid = f.cid
and p.pid = f.pid WHERE f.auto like '-1' and c.farbe like '-1' ' at line 1

  1. echo $begrüßung;

    Habe ein DB_Abfrage-Testscript (SQL-Code siehe unten)  das auf mysql v. 4.0.24  problemlos funktioniert ( siehe http://fally.akis.at/DB_Abfrage_Beispiel.php ) auf mysql v. 5.0.21 getestet.

    Wenn Syntaxfehler problemlos funktionieren, ist das ein Fehler im auswertenden Programm.

    Dabei bekomme ich untenstehende  SQL-Fehlermeldung.

    Zu Recht.

    Hat sich da etwas entscheidendes geändert bzw. welcher Fehler steckt da in meiner Abfrage ?

    Ja, die oben angedeutete lasche Syntaxprüfung wurde korrigiert bzw. deine Join-Bedingungen passen nicht zum jeweiligen JOIN-Teil.

    S Q L-C o d e:

    Das ist noch nicht wirklich SQL-Code, da stecken noch Platzhalter drin, was aber in dem Fall nicht weiter tragisch ist.

    SELECT *
    FROM fahrzeug_rela f
    INNER JOIN colour c, ps p ON c.cid = f.cid and p.pid = f.pid

    Zuerst joinst du c. Dann joinst du p und gibst als Bedingung eine Verknüpfung f mit einem Feld aus c an. Notiere die c-Bedingung im c-Teil und alles wird gut ...

    WHERE f.auto like %s and c.farbe like %s and p.ps like %s
    ORDER BY f.auto

    echo "$verabschiedung $name";