Does anybody know how to perform a full outer join with ArcMap?

I have the following two tables:

Table A

Table B
Joinkey Other_field
1 1
1 2
1 3

The result should be something like:

Joinkey_A Joinkey_B Other_field
1 1 1
1 1 2
1 1 3

But ArcMap does the following (inner join):

Joinkey_A Joinkey_B Other_field
1 1 1
2 2 1
3 3 1

In my opinion this means, I need a full outer join but I cannot find any solution for this.


The Add Join tool might be for what you are looking.

Under the join_type parameter, here is the description of the valid inputs:

  • KEEP_ALL —All records in the input layer or table view will be included in the output—also known as an outer join. This is the default.
  • KEEP_COMMON —Only those records in the input that match to a row in the join table will be present in the result—also known as an inner join.

The Add Join parameters just deal with keeping all records in the resulting joined table (parent + join), regardless, if there's a match to a record in the join table (KEEP_ALL) or only keeping records in the resulting joined table where there's a match of the parent and the join (KEEP_COMMON). They don't create this full outer join result that Chronnie's referring to

I found a blurb on ideas.esri.com from someone talking about a possible solution to Chronnie's question, i.e. how to do full outer join. Here's an excerpt:

This is currently supported by a geoprocessing tool called "Make Query Table." It can execute standard DBMS-style outer joins between multiple tables, and if the shape column from your spatial data table is included, then the result is an in memory feature class. The result can be "re-hydrated" each time you open the same ArcMap document, or you can use the "Copy Features" geoprocessing tool, or standard ArcMap data export, to create a permanent new feature class.

The only limitation on the Make Query Table tool that might cause you heartburn is that the feature class and table you want to join have to exist in the same workspace, and I think that shape files and dBase tables aren't supported. Personal, file, workgroup, and enterprise geodatabases are supported, however.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.