CREATE VIEW Nicht nachvollziehbare Fehler?!

mprehn

Grünschnabel

Naben zusammen!
Ich habe folgendes Problem:
Ich habe drei Tabellen: user, user_sys, user_fav.
Jetzt möchste ich eine View erstellen, sämtliche Datensätze der drei Tabellen einfügen und nachher den View nach übergebener ID filtern.
Jedoch macht mir der MySQL Server einen Strich durch die Rechnung! Ich bekomme durchgehend einen Syntax-Error, obwohl der Query stimmen muss! Vielleicht kann mir ja einer von euch helfen...
Der Query
Code:
CREATE VIEW viewProfile AS SELECT * FROM lanstars_user, lanstars_user_sys, lanstars_user_fav WHERE lanstars_user_sys.user_id = lanstars_user.id AND lanstars_user_fav.user_id = lanstars_user.id
Der MySQL Syntax-Error
Code:
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 'VIEW viewProfile AS SELECT * FROM lanstars_user, lanstars_user_s

Danke im Voraus!:rolleyes:
 
Zuletzt bearbeitet:
Hallo,

eventuell oder ziemlich sicher hast du doppelte Spaltennamen:

In deinem Beispiel mindestens diese beiden:

lanstars_user_fav.user_id und
lanstars_user_sys.user_id

Da du ein "SELECT *" in der Viewdefinition machst, wären die Spaltennamen der View nicht eindeutig.

Versuch mal die View mit einer Spaltenliste zu qualifizieren um eindeutig zu werden ,oder mit Spalten-Aliasen in der SELECT-Klausel. Auf jeden Fall nicht mit "SELECT *":

SQL:
CREATE VIEW viewProfile (user_id, name, description .....) AS 
SELECT lanstar_user_fav.user_id, lanstar_user.name, lanstar_user.descr ...
  FROM lanstars_user, 
       lanstars_user_sys, 
       lanstars_user_fav 
 WHERE lanstars_user_sys.user_id = lanstars_user.id AND 
       lanstars_user_fav.user_id = lanstars_user.id

Zugegeben, die Fehlermeldung die Du von MySQL bekommen hast, sagt leider fast gar nichts aus.

Markus
 
Zuletzt bearbeitet:
Hm danke für die Antwort. Ab welcher Version unterstützt MySQL die VIEWS? Vielleicht unterstützt mein Server die Funktion ja garnicht ... :confused:
 
Hallo,

ja, das wollte ich zwar noch fragen, aber ich dachte du hattest das schon sichergestellt.

Ab Version 5.0 unterstützt MySQL benannte Views.

Markus
 

Neue Beiträge

Zurück