Hi Janneke, Hope you do not mind if I answer in english because this might also be interesting for torque users list who do not speak german. To resummarize the problem, in some cases (see attached mail) the left join seems to behave like a "normal" inner join. A colleague of mine just found out that in some databases (e.g. Oracle), if you use a left join and use the table you left joined on in the where clause, the left join gets "converted" to an inner join. You would have to include all parts of the where clause to the join clause to get what you are looking for. so what you would want is SELECT ... FROM AUFLAGEN LEFT JOIN BILDER ON AUFLAGEN.AUF_ID=3DBILDER.BI_REF_ID AND BILDER.BI_RS_ID<>3 AND BILDER.BI_REFTABNAME=3D'AUFLAGEN'; and not (this is what you get at the moment) SELECT ... FROM AUFLAGEN LEFT JOIN BILDER ON AUFLAGEN.AUF_ID=3DBILDER.BI_REF_ID WHERE BILDER.BI_RS_ID<>3 AND BILDER.BI_REFTABNAME=3D'AUFLAGEN'; I am afraid this is not supported by Torque at the moment :-( (see also http://issues.apache.org/scarab/issues/id/TRQS258 in the issue tracker) Thomas "Janneke Cloppen" <[EMAIL PROTECTED]> schrieb am 18.05.2005 10:52:51: > Hallo Thomas > > Die normalen Joins funktionieren einwandfrei, hab bis jetzt nur left = und > right getestet. Mir ist aufgefallen, dass er dies nicht als left-join= > verwendet sondern das normale Join. Hier ein Beispiel wo ich es verwe= nde > (wurde ein bi=DFkel gek=FCrzt) > > Criteria lcriteria=3Dnew Criteria(); > > > lcriteria.addJoin(AuflagenPeer.AUF_ID,BilderPeer.BI_REF_ID,Criteria. > LEFT_JOIN); > lcriteria.addJoin(AuflagenPeer.AUF_VT_ID,VerteilerPeer.VT_ID= ); > lcriteria.addJoin(VerteilerPeer.VT_ADR_ID,AdressenPeer.ADR_I= D); > lcriteria.add(BilderPeer.BI_REFTABNAME,AuflagenPeer.TABLE_NA= ME); > > > lcriteria.add(BilderPeer.BI_RS_ID,Settings.RECORDSTATUS_DELETE, > Criteria.NOT_EQUAL); > lcriteria.addSelectColumn(AuflagenPeer.AUF_LASTFAHRT); > lcriteria.addSelectColumn(AdressenPeer.ADR_FIRMA); > lcriteria.addSelectColumn(AuflagenPeer.AUF_TEXT); > lcriteria.addSelectColumn(BilderPeer.BI_ID); > lcriteria.addSelectColumn(BilderPeer.BI_DATEINAME); > > lRw =3D AuflagenPeer.doSelectVillageRecords(lcriteria); > > In diesem Fall werden nur Auflagen angezeigt, die auch Bilder haben, = aber > dies m=FC=DFte eigentlich auch Auflagen anzeigen, die keine bilder be= sitzen. > Hier die Ausgabe vom Criteria als String. > > Criteria:: AUFLAGEN.AUF_STR_ID<=3D>AUFLAGEN.AUF_STR_ID IS NULL : > BILDER.BI_RS_ID<=3D>BILDER.BI_RS_ID<>3: > BILDER.BI_REFTABNAME<=3D>BILDER.BI_REFTABNAME=3D'AUFLAGEN': > AUFLAGEN.AUF_RS_ID<=3D>AUFLAGEN.AUF_RS_ID<>3: > AUFLAGEN.AUF_ANT_ID<=3D>AUFLAGEN.AUF_ANT_ID=3D142: > > > Current Query SQL (may not be complete or applicable): SELECT > AUFLAGEN.AUF_LASTFAHRT, ADRESSEN.ADR_FIRMA, AUFLAGEN.AUF_TEXT, BILDER.BI_ID, > BILDER.BI_DATEINAME, AUFLAGEN.AUF_GPSPOS, AUFLAGEN.AUF_POSITION FROM > AUFLAGEN LEFT JOIN BILDER ON AUFLAGEN.AUF_ID=3DBILDER.BI_REF_ID, VERT= EILER, > ADRESSEN WHERE AUFLAGEN.AUF_VT_ID=3DVERTEILER.VT_ID AND > VERTEILER.VT_ADR_ID=3DADRESSEN.ADR_ID AND AUFLAGEN.AUF_STR_ID IS NULL= AND > BILDER.BI_RS_ID<>3 AND BILDER.BI_REFTABNAME=3D'AUFLAGEN' AND > AUFLAGEN.AUF_RS_ID<>3 AND AUFLAGEN.AUF_ANT_ID=3D142 ORDER BY > AUFLAGEN.AUF_LASTFAHRT DESC, VERTEILER.VT_POSITION ASC > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
