MySql 5.0 -Fehler
xpfreund
- datenbank
0 Sympathizer0 Vinzenz Mai0 xpfreund0 Vinzenz Mai0 xpfreund0 Vinzenz Mai0 xpfreund
Hallo,
warum schlägt eigentlich diese Abfrage schief?
select A.nachname as from_nachname, B.nachname as to_nachname, deadline
from todo, users as A
left join users as B on B.ID = todo.ext
Unbekannte Spalte "ext", obwohl sie vorhanden ist. Fehler 1054
Habt ihr ne Ahnung?
gruß aus Senftenberg am See
Hallo,
ich bin nicht so SQL bewandert, jedoch stellt sich mir die Frage,
_was_ du ueberhaupt retrieven moechtest!
select
A.nachname as from_nachname,
B.nachname as to_nachname,
deadline <== welche Tabelle?
from
todo, <== warum im From wenn du nachher joinst?
users as A
left join
users <== A, B ??
as B on B.ID = todo.ext
Alles ein wenig durcheinander...
MfG
Sympathizer
Hallo,
select A.nachname as from_nachname, B.nachname as to_nachname, todo.deadline
from todo, users as A
left join users as B on B.ID = todo.ext
where todo.ext = 8
eine Tabelle todo, die die Spalte ext enthält und eine Tabelle users, die díe Spalte nachname enthält.
Es sollen alle Datensätze aus todo rausgesucht werden, welche in ext 8 stehen haben. Weiterhin soll statt der 8 der Nachname des Users Nr. 8 (Id) zu jedem Datensatz angezeigt werden.
gruß aus Senftenberg am See
Hallo,
Hallo,
ich bin nicht so SQL bewandert, jedoch stellt sich mir die Frage,
_was_ du ueberhaupt retrieven moechtest!
select
A.nachname as from_nachname,
B.nachname as to_nachname,
deadline <== welche Tabelle?
from
todo, <== warum im From wenn du nachher joinst?
users as A
left join
users <== A, B ??
as B on B.ID = todo.ext
>
> Alles ein wenig durcheinander...
Nachdem was ich gefunden hab, geht das auch so.
SELECT todo.deadline, users.nachname
FROM todo, users
WHERE todo.ext = users.ID
AND todo.ext =8
gruß aus [Senftenberg](http://www.senftenberg.de/) am [See](http://www.senftenberger-see.de/)
Hallo
Nachdem was ich gefunden hab, geht das auch so.
SELECT todo.deadline, users.nachname
FROM todo, users
WHERE todo.ext = users.ID
AND todo.ext =8
der explizite LEFT-Join bricht das Statement, lies die von mir verlinkte Handbuchseite.
Lies nach, welche Änderungen sich in MySQL 5.0.12 für die Verarbeitung von
Joins ergeben. Genau aus diesen Gründen bevorzuge ich explizite Joins.
Freundliche Grüße
Vinzenz
Hallo,
select A.nachname as from_nachname, B.nachname as to_nachname, deadline
from todo, users as A
left join users as B on B.ID = todo.ext
Unbekannte Spalte "ext", obwohl sie vorhanden ist. Fehler 1054
seit 5.0.12 werden solche schlampigen Statements mit einer Fehlermeldung quittiert, siehe Handbuch.
Grüße
Vinzenz
Hallo,
Hallo,
select A.nachname as from_nachname, B.nachname as to_nachname, deadline
from todo, users as A
left join users as B on B.ID = todo.ext
Unbekannte Spalte "ext", obwohl sie vorhanden ist. Fehler 1054seit 5.0.12 werden solche schlampigen Statements mit einer Fehlermeldung quittiert, siehe Handbuch.
Dann zeige ich dir hier mal den Originalcode, den erfahrene Programmierer geschrieben haben, beim Phprojekt 4.2.4.
$fields = array("remark","note","deadline","anfang","priority","progress",);
$f_lang = array($todo_text6,$todo_text5,$rts_18, $info_text7,$r_proj2, $proj_start,$rts_38, $todo_text4);
$query = "select A.nachname as from_nachname, B.nachname as to_nachname, ".implode(",",$fields)."
from ".DB_PREFIX."todo, ".DB_PREFIX."users as A
left join ".DB_PREFIX."users as B on B.ID = ext
where (".DB_PREFIX."todo.acc like 'system' or ((von = $user_ID or ext = $user_ID or ".DB_PREFIX."todo.acc like 'group' or ".DB_PREFIX."todo.acc like '%"$user_kurz"%') and
".DB_PREFIX."todo.gruppe = $user_group)) and A.ID = ".DB_PREFIX."todo.von
order by deadline desc";
Also sag du mir nicht ich hab den Müll programmiert.
gruß aus Senftenberg am See
Hallo
seit 5.0.12 werden solche schlampigen Statements mit einer Fehlermeldung quittiert, siehe Handbuch.
Dann zeige ich dir hier mal den Originalcode, den erfahrene Programmierer geschrieben haben, beim Phprojekt 4.2.4.
$query = "select A.nachname as from_nachname, B.nachname as to_nachname, ".implode(",",$fields)."
from ".DB_PREFIX."todo, ".DB_PREFIX."users as A
left join ".DB_PREFIX."users as B on B.ID = ext
where (".DB_PREFIX."todo.acc like 'system' or ((von = $user_ID or ext = $user_ID or ".DB_PREFIX."todo.acc like 'group' or ".DB_PREFIX."todo.acc like '%"$user_kurz"%') and
".DB_PREFIX."todo.gruppe = $user_group)) and A.ID = ".DB_PREFIX."todo.von
order by deadline desc";
ja und? Schlampig bleibt schlampig. Und MySQL bestraft inzwischen immer öfter
Schlampigkeit. Es gab und gibt genügend (PHP-)Anwendungen, die mit MySQL 5.0
erst nach einer Komplettüberarbeitung zusammenarbeiten, weil sie sich auf das
schlampige Verhalten von MySQL vor 5.0.12 verlassen hatten.
Freundliche Grüße
Vinzenz
Hallo,
$query = "select A.nachname as from_nachname, B.nachname as to_nachname, ".implode(",",$fields)."
from ".DB_PREFIX."todo, ".DB_PREFIX."users as A
left join ".DB_PREFIX."users as B on B.ID = ext
where (".DB_PREFIX."todo.acc like 'system' or ((von = $user_ID or ext = $user_ID or ".DB_PREFIX."todo.acc like 'group' or ".DB_PREFIX."todo.acc like '%"$user_kurz"%') and
".DB_PREFIX."todo.gruppe = $user_group)) and A.ID = ".DB_PREFIX."todo.von
order by deadline desc";
Was meinst du wie man das ändern sollte, so einfach wie unten geht das ja auch nicht? Spalte Nachname von, dann Spalte Nachname ext und dann die restlichen Spalten.
gruß aus Senftenberg am See
Hallo,
Was meinst du wie man das ändern sollte
so wie es der von mir bereits verlinkten Handbuchseite zu entnehmen ist.
Der Fehler wird dort aufgeführt.
<zitat>
"Also, some queries that appeared to work correctly in older versions
must be rewritten to comply with the standard."
</zitat>
Ich betone: "that appeared to work correctly"
Freundliche Grüße
Vinzenz
Hallo,
Hallo,
Was meinst du wie man das ändern sollte
so wie es der von mir bereits verlinkten Handbuchseite zu entnehmen ist.
Der Fehler wird dort aufgeführt.<zitat>
"Also, some queries that appeared to work correctly in older versions
must be rewritten to comply with the standard."
</zitat>Ich betone: "that appeared to work correctly"
Da wurde ja ordentlich verändert. Den Teil muss ich wohl überlesen haben.
Besten Dank
gruß aus Senftenberg am See