Problem bei Umstellung auf MySQL 5.x

Problem bei Umstellung auf MySQL 5.x

am 28.06.2006 22:20:25 von Jan Pokrandt

Hallo Allerseits,

bei der Umstellung einer Anwendung auf den MySQL 5.x-Server komme ich mit
einer SQL-Abfrage einfach nicht weiter.

Folgendes funktioniert unter MySQL 3.23 und 4.x einwandfrei :

select
A.REC_ID,A.EK_PREIS,A.VK_PREIS,
AP.PREIS,
AB_EKBEST.SUM_MENGE as MENGE_BESTELLT,
AB_VKRE_EDI.SUM_MENGE as MENGE_RESERVIERT,
ME.BEZEICHNUNG as ME_EINHEIT,
LIEFPOS.MENGE as MENGE_LIEF,
JP1.MENGE as MENGE_SOLL,
JP1.REC_ID as JID
from
JOURNALPOS JP1,
ARTIKEL A
left outer join ARTIKEL_PREIS AP on AP.ARTIKEL_ID=A.REC_ID
left outer join LIEFERSCHEIN_POS LIEFPOS on LIEFPOS.REC_ID=JP1.QUELLE_SRC
left outer join ARTIKEL_BDATEN AB_EKBEST on AB_EKBEST.ARTIKEL_ID=A.REC_ID
and AB_EKBEST.QUELLE=26
left outer join ARTIKEL_BDATEN AB_VKRE_EDI on
AB_VKRE_EDI.ARTIKEL_ID=A.REC_ID and AB_VKRE_EDI.QUELLE=13
left outer JOIN MENGENEINHEIT ME on ME.REC_ID=A.ME_ID
where (JP1.JOURNAL_ID=0) and (JP1.ARTIKEL_ID=A.REC_ID)
group by A.REC_ID, AP.ADRESS_ID, JP1.REC_ID;

unter MySQL 5.0.15-NT erhalte ich folgende Fehlermeldung :

Unbekanntes Tabellenfeld 'JP1.QUELLE_SRC' in on clause


Ich versuche mich jetzt schon einige Tage daran, bin der Lösung aber keinen
Schritt näher gekommen.
Weiss jemand was ich falsch mache oder wie ich das Problem evt. umgehen
kann.

Script zum Anlegen der Tabellen :

CREATE TABLE ARTIKEL (
REC_ID int(11) NOT NULL auto_increment,
ARTNUM varchar(20) default NULL,
EK_PREIS decimal(12,4) NOT NULL default '0.0000',
VK_PREIS decimal(12,4) NOT NULL default '0.0000',
ME_ID int(11) NOT NULL default '1',
PRIMARY KEY (REC_ID)
);

CREATE TABLE ARTIKEL_BDATEN (
ARTIKEL_ID int(11) NOT NULL default '-1',
QUELLE tinyint(2) unsigned NOT NULL default '0',
SUM_MENGE decimal(12,4) NOT NULL default '0.0000',
PRIMARY KEY (ARTIKEL_ID,QUELLE),
KEY IDX_QUELLE (QUELLE,ARTIKEL_ID)
);

CREATE TABLE ARTIKEL_PREIS (
ARTIKEL_ID int(11) NOT NULL default '-1',
ADRESS_ID int(11) NOT NULL default '-1',
PREIS decimal(12,4) NOT NULL default '0.0000',
PRIMARY KEY (ARTIKEL_ID,ADRESS_ID)
);

CREATE TABLE MENGENEINHEIT (
REC_ID int(11) unsigned NOT NULL auto_increment,
BEZEICHNUNG varchar(50) NOT NULL default '',
PRIMARY KEY (REC_ID),
UNIQUE KEY BEZEICHNUNG (BEZEICHNUNG)
);

CREATE TABLE JOURNALPOS (
REC_ID int(11) NOT NULL auto_increment,
JOURNAL_ID int(11) NOT NULL default '0',
QUELLE_SRC int(11) NOT NULL default '-1',
ARTIKEL_ID int(11) NOT NULL default '-1',
MENGE decimal(10,3) NOT NULL default '0.000',
PRIMARY KEY (REC_ID),
KEY ARTIKEL_ID (ARTIKEL_ID)
);

CREATE TABLE LIEFERSCHEIN_POS (
REC_ID int(11) NOT NULL auto_increment,
MENGE decimal(10,3) NOT NULL default '0.000',
PRIMARY KEY (REC_ID)
);


Viele Grüße, Jan

Re: Problem bei Umstellung auf MySQL 5.x

am 29.06.2006 12:43:21 von Axel Schwenke

"Jan Pokrandt" wrote:
>
> bei der Umstellung einer Anwendung auf den MySQL 5.x-Server komme ich mit
> einer SQL-Abfrage einfach nicht weiter.
>
> Folgendes funktioniert unter MySQL 3.23 und 4.x einwandfrei :
>
> select
....
> from
> JOURNALPOS JP1,
> ARTIKEL A
> left outer join ARTIKEL_PREIS AP on AP.ARTIKEL_ID=A.REC_ID
....

> Ich versuche mich jetzt schon einige Tage daran, bin der Lösung aber keinen
> Schritt näher gekommen.
> Weiss jemand was ich falsch mache

Ja. Du liest nicht das Handbuch.

Preisfrage: Warum macht sich jemand die Mühe und schreibt im MySQL-
Manual das Kapitel: "Upgrading from MySQL 4.1 to 5.0"?

http://dev.mysql.com/doc/refman/5.0/en/upgrading-from-4-1.ht ml

> oder wie ich das Problem evt. umgehen kann.

Im Telegrammstil: du darfst JOINs in "," Notation und JOIN nicht
mehr mischen. Vor MySQL 5 war das nur schlechter Stil, jetzt ist
es ein Syntaxfehler.

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


XL

Re: Problem bei Umstellung auf MySQL 5.x

am 29.06.2006 23:32:22 von Jan Pokrandt

Hallo Axel,

> Ja. Du liest nicht das Handbuch.

danke für deine Erläuterung, da habe ich wohl wirklich nicht gut genug
gesucht.

[...]

> war das nur schlechter Stil, jetzt ist es ein Syntaxfehler.

Ich gelobe Besserung und versuche den schlechten Stil abzustellen ;-)

Gruß Jan