Chillmaster
15-09-2002, 20:36
Weiß vielleicht jemand warum diese Abfrage bei MySQL nicht funktioniert:
SELECT TT.TT_Num, TT.TT_Tit, TT.ST_Bez, TT.TT_Dri, TT.TT_DaGe, TT.TT_DaTa, MA1.MA_Nam, MA1.MA_Vor, MA.MA_Nam, MA.MA_Vor, GR.GR_Bez FROM GR INNER JOIN ((TT INNER JOIN MA AS MA1 ON TT.MA_KeEr = MA1.MA_Ken) LEFT JOIN MA ON MA.MA_Ken = TT.MA_KeVa) ON GR.GR_Ken = TT.GR_Ken WHERE (((TT.TT_Num)=$TTNum))
Ich habs auf DB2 und Access probiert da klappt es, nur in MySQL nicht. Hab Version 4.
Falls jemand Zeit hat!Danke
CHnuschti
15-09-2002, 20:52
Also abgesehen davon dass ich diese verschachtelte Konstruktion mit den Joins noch nie gesehen haben (will aber nichts heissen ;)) stelle ich fest dass deine aliasse TT und GR nirgends definiert werden. (... as TT .... .... as GR), wenn es dann solche aliasse sind. Ansonsten wird TT nirgends definiert, soweit ich sehe.
Hier
(((TT.TT_Num)=$TTNum))
fehlt noch eine abschliessende Klammer
und ein quoten in '$TTNum' oder "$TTNum" ist vllt. auch nützlich
mfg
Chillmaster
15-09-2002, 21:39
Es gibt nur eine alias tabelle das ist MA1 und die wird definiert
die quotes braucht man bei anderen datenbanken nicht, hab sie jetzt dazugegeben und es kommt der selbe fehler.
die klammern hab ich auch ausgebessert --> selber fehler
Warning: SQL error: [MySQL][ODBC 3.51 Driver][mysqld-4.0.3-beta-nt]You have an error in your SQL syntax near '((TT INNER JOIN MA AS MA1 ON TT.MA_KeEr = MA1.MA_Ken) LEFT JOIN MA ON MA.MA_Ken ' at line 2, SQL state 42000 in SQLExecDirect in d:\server\http\echo\search_processed.php on line 314
Chillmaster
16-09-2002, 12:20
Das Problem ist das MySQL erst Version 4.1 Subselects unterstützt!!!
Darum funktionierts nicht
:goth: ... welche Subselects?
Chillmaster
16-09-2002, 20:47
Soweit ich weiß wird der Ausdruck in Klammer wie ein subselect behandelt.
Falls das nciht stimmt und du weißt warum es dann nicht geht sag es mir bitte.