English

FAQ: Will Outer Joins work in the SPATIALQUERY Element for ArcIMS?

Question

Will Outer Joins work in the SPATIALQUERY Element for ArcIMS?

Answer

Yes. Outer joins work for tables joined to ArcSDE feature classes using the SPATIALQUERY element.

When joining database tables to ArcSDE feature classes, features that do not have matching records in the joined table are not rendered because ArcIMS instructs the database to perform inner joins.

If matching records do not exist in the joined table, and the desired outcome is the rendering of all features, the ArcIMS map configuration file or query should be configured to execute an outer join in the database.

For example, in the case of a table with 75 records joined to an ArcSDE feature class with 100 records, ArcIMS must instruct the database to perform a left outer join to render all features even though all of the features do not have matching records in the joined table. If a left outer join is not performed, only the 75 features with matching records in the table will be rendered.

To perform a left outer join in ArcIMS, the appropriate syntax must be used for the database being used, as demonstrated in the examples below.

· Oracle example: (+)

Code:
<SPATIALQUERY where="ARCIMS.REGIONS.JOINID = ARCIMS.EXPORTS.JOINID (+)" jointables="ARCIMS.EXPORTS" />


· SQL Server 2000 example: *=
Code:
<SPATIALQUERY where="ARCIMS.REGIONS.JOINID *= ARCIMS.EXPORTS.JOINID" jointables="ARCIMS.EXPORTS" />

Note:
This does not work when using SQL Server 2005.


For more information about the SPATIALQUERY element, please see the ArcXML Programmer's Reference Guide.