Re: Unknown column "ta.task_id" in "on clause" seit MySQL 5.0.15

Re: Unknown column "ta.task_id" in "on clause" seit MySQL 5.0.15

am 18.11.2005 11:53:48 von Dominik Echterbruch

Martin Woschek wrote:
>
> SELECT ta.*,project_name, project_id,
> project_color_identifier,tp.task_pinned FROM `projects` as pr,`tasks` as
> ta,`user_tasks` as ut LEFT JOIN `user_task_pin` AS tp ON tp.task_id =
> ta.task_id and tp.user_id = 2 WHERE ut.task_id = ta.task_id AND ut.user_id
> = '2' AND ( ta.task_percent_complete < 100 or ta.task_percent_complete is
> null) AND ta.task_status = '0' AND pr.project_id = ta.task_project AND
> project_active = 1 AND project_status != 4 AND task_dynamic = 0 AND
> ta.task_end_date != '' AND ta.task_end_date != '0000-00-00 00:00:00' GROUP
> BY ta.task_id ORDER BY ta.task_end_date,task_priority DESC
>
> tritt der Fehler
> unknown column 'ta.task_id' in 'on clause'
> auf. Ich hoffe instaendigst, dass das nicht wieder ein reserviertes Wort
> ist ;)

Auf den ersten Blick finde ich da jetzt auch keinen Fehler. Poste doch
bitte mal das CREATE-Statement der verwendeten Tabellen.

Und probier doch mal folgendes:

SELECT ta.*,project_name, project_id, project_color_identifier,
tp.task_pinned
FROM `projects` as pr
INNER JOIN `tasks` as ta ON pr.project_id = ta.task_project
INNER JOIN `user_tasks` as ut ON ut.task_id = ta.task_id
LEFT JOIN `user_task_pin` AS tp ON tp.task_id = ta.task_id
AND tp.user_id = 2
WHERE ut.user_id = '2'
AND (ta.task_percent_complete < 100 OR ta.task_percent_complete IS NULL)
AND ta.task_status = '0'
AND project_active = 1
AND project_status != 4
AND task_dynamic = 0
AND ta.task_end_date != '' AND ta.task_end_date != '0000-00-00 00:00:00'
GROUP BY ta.task_id
ORDER BY ta.task_end_date, task_priority DESC

Vielleicht kommt Version 5.0.15 mit den Cross- und Left-Joins bei dieser
Notation durcheinander. Ist aber nur ein schwacher Versuch, also bitte
nicht zu viel davon erwarten :)

Grüße,
Dominik
--
MonstersGame - Die Schlacht zwischen Vampiren und Werwölfen
http://spielwelt6.monstersgame.net/?ac=vid&vid=3018786

Re: Unknown column "ta.task_id" in "on clause" seit MySQL 5.0.15

am 18.11.2005 12:24:49 von Carsten Wiedmann

Martin Woschek schrieb:

> SELECT ta.*,project_name, project_id,
> project_color_identifier,tp.task_pinned FROM `projects` as pr,`tasks` as
> ta,`user_tasks` as ut LEFT JOIN `user_task_pin` AS tp ON tp.task_id =
> ta.task_id and tp.user_id = 2 WHERE ut.task_id = ta.task_id AND ut.user_id
> = '2' AND ( ta.task_percent_complete < 100 or ta.task_percent_complete is
> null) AND ta.task_status = '0' AND pr.project_id = ta.task_project AND
> project_active = 1 AND project_status != 4 AND task_dynamic = 0 AND
> ta.task_end_date != '' AND ta.task_end_date != '0000-00-00 00:00:00' GROUP
> BY ta.task_id ORDER BY ta.task_end_date,task_priority DESC
>
> tritt der Fehler
> unknown column 'ta.task_id' in 'on clause'
> auf. Ich hoffe instaendigst, dass das nicht wieder ein reserviertes Wort
> ist ;)

Die Lösung habt ihr ja schon gefunden. Zur Erklärung kann man das hier [1]
nachlesen. Gibt leider keinen passenden Anker, such im Browser nach: "Before
MySQL 5.0.12, the comma operator".

Gruß
Carsten

[1] http://dev.mysql.com/doc/refman/5.0/en/join.html

Unknown column "ta.task_id" in "on clause" seit MySQL 5.0.15

am 18.11.2005 12:26:43 von Martin Woschek

Hallo nochmal,

ich habe ein Skript bei mir auf dem Rechner laufen
(http://www.dotproject.net/), das seit dem Update MySQL 3.irgendwas auf
5.0.15 Probleme bereitet. Bei folgender Abfrage:

SELECT ta.*,project_name, project_id,
project_color_identifier,tp.task_pinned FROM `projects` as pr,`tasks` as
ta,`user_tasks` as ut LEFT JOIN `user_task_pin` AS tp ON tp.task_id =
ta.task_id and tp.user_id = 2 WHERE ut.task_id = ta.task_id AND ut.user_id
= '2' AND ( ta.task_percent_complete < 100 or ta.task_percent_complete is
null) AND ta.task_status = '0' AND pr.project_id = ta.task_project AND
project_active = 1 AND project_status != 4 AND task_dynamic = 0 AND
ta.task_end_date != '' AND ta.task_end_date != '0000-00-00 00:00:00' GROUP
BY ta.task_id ORDER BY ta.task_end_date,task_priority DESC

tritt der Fehler
unknown column 'ta.task_id' in 'on clause'
auf. Ich hoffe instaendigst, dass das nicht wieder ein reserviertes Wort
ist ;)

Vor dem Update gings das problemlos (zumindest hat mir niemand von einem
Fehler berichtet). Vorschlaege?

Gruesse
Martin

Re: Unknown column "ta.task_id" in "on clause" seit MySQL 5.0.15

am 18.11.2005 12:43:38 von Dominik Echterbruch

Carsten Wiedmann wrote:
>
>> SELECT ta.*,project_name, project_id,
>> project_color_identifier,tp.task_pinned FROM `projects` as pr,`tasks` as
>> ta,`user_tasks` as ut LEFT JOIN `user_task_pin` AS tp ON tp.task_id =
>> ta.task_id and tp.user_id = 2 WHERE ut.task_id = ta.task_id AND
>> ut.user_id
>> = '2' AND ( ta.task_percent_complete < 100 or ta.task_percent_complete is
>> null) AND ta.task_status = '0' AND pr.project_id = ta.task_project AND
>> project_active = 1 AND project_status != 4 AND task_dynamic = 0 AND
>> ta.task_end_date != '' AND ta.task_end_date != '0000-00-00 00:00:00'
>> GROUP
>> BY ta.task_id ORDER BY ta.task_end_date,task_priority DESC
>>
>> tritt der Fehler
>> unknown column 'ta.task_id' in 'on clause'
>> auf. Ich hoffe instaendigst, dass das nicht wieder ein reserviertes Wort
>> ist ;)
>
> Die Lösung habt ihr ja schon gefunden. Zur Erklärung kann man das hier
> [1] nachlesen. Gibt leider keinen passenden Anker, such im Browser nach:
> "Before MySQL 5.0.12, the comma operator".
>
> [1] http://dev.mysql.com/doc/refman/5.0/en/join.html

Ein Hoch auf das Handbuch :)


Grüße,
Dominik
--
MonstersGame - Die Schlacht zwischen Vampiren und Werwölfen
http://spielwelt6.monstersgame.net/?ac=vid&vid=3018786

Re: Unknown column "ta.task_id" in "on clause" seit MySQL 5.0.15

am 18.11.2005 13:12:53 von Martin Woschek

Dominik Echterbruch wrote:
>
> Auf den ersten Blick finde ich da jetzt auch keinen Fehler. Poste doch
> bitte mal das CREATE-Statement der verwendeten Tabellen.
>
Kann ich gerne machen, das Problem hat sich aber durch Deinen anderen
Vorschlag erledigt.

> Und probier doch mal folgendes:
>

>
> Vielleicht kommt Version 5.0.15 mit den Cross- und Left-Joins bei dieser
> Notation durcheinander. Ist aber nur ein schwacher Versuch, also bitte
> nicht zu viel davon erwarten :)
>
Genau daran hat es anscheinend gelegen. Nachdem ich das Statement
umgeschrieben hatte, funktionierte es problemlos.

Nett zu wissen, dass "jetzt wert auf sauberes SQL gelegt wird" :)

Danke Dir.
Gruesse
Martin

P.S.: Entschuldige bitte, dass ich vergessen hatte, mein Statement sauber
hinzuschreiben... ich wusste, ich hab was vergessen...

Re: Unknown column "ta.task_id" in "on clause" seit MySQL 5.0.15

am 18.11.2005 14:21:56 von Hartmut Holzgraefe

Martin Woschek wrote:
>> Vielleicht kommt Version 5.0.15 mit den Cross- und Left-Joins bei dies=
er
>> Notation durcheinander. Ist aber nur ein schwacher Versuch, also bitte=

>> nicht zu viel davon erwarten :)
>>
> Genau daran hat es anscheinend gelegen. Nachdem ich das Statement
> umgeschrieben hatte, funktionierte es problemlos.
>=20
> Nett zu wissen, dass "jetzt wert auf sauberes SQL gelegt wird" :)

Da haben wir leider etwas übertrieben,
in 5.0.16 sollte das wieder weitgehend Rückwärtskompatibel sein ...

--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com