Add Join not keeping all target features

1431
13
10-25-2023 08:54 AM
YusefSamari
Occasional Contributor

I am trying to join a table to a feature class using the Add Join tool. The box 'Keep All Target Features' is ticked:

YusefSamari_0-1698249012470.png

Based on my previous experience, and the info on the pop-up box of that parameter, this should mean that all features in the input layer are kept, regardless of whether the join fields match. However, the resulting output is only including input features that match on the join table field, regardless of whether the box is ticked. Basically it seems stuck on performing an inner join even though an outer join is selected. This happens regardless of whether or not the fields are indexed. Both the feature class and the table are stored in a geodatabase. 

Please can anyone advise as to why this might be happening?

13 Replies
Robert_LeClair
Esri Notable Contributor

First, is your data stored in a file or enterprise geodatabase?

Second - from the Help - "If the join results are unexpected or incomplete, review whether the Join Table Field and Input Join Field parameter values are indexed. If they're not, try deleting and re-creating the index and rerun the tool."

Third - you can run the Validate Join (Data Managemen) GP tool to see if the join is valid and determine cardinality.

0 Kudos
YusefSamari
Occasional Contributor

Hi Robert, thanks for your replies.

The data are stored in a file geodatabase.

I have tried running this with the Join and Input Table Fields indexed and non-indexed. I get the same result either way.

This is the output from the Validate

YusefSamari_0-1698267909818.png

I'm not sure what extra that tells me, as I already knew there were only 2 matches, but I want to retain all the rows that don't match.

 

0 Kudos
Robert_LeClair
Esri Notable Contributor

Can you share the data with me so I may test on my side?  If so, my email is rleclair at esri dot com - thx!

0 Kudos
avonmoos
Occasional Contributor

I've ran into this issue in the past and the work around to show all of the joined data was to export the table to excel and all of the complete joined dataset will appear.

0 Kudos
ThomasHynes
New Contributor III

This didn't work for me.  Tried exporting join table to csv and xlsx

0 Kudos
ThomasHynes
New Contributor III

I was having this issue joining a file geodatabase table to a SDE feature class.  I was able to work around this by copying the feature class to a file geodatabase.  After that, all target features did show successfully.  I did call Support and they are escalating the issue to development

LeilaJackson1
Occasional Contributor III

I have encountered this issue as well when joining a table to a layer both from file GDBs in Pro 3.2. The validate shows that there are 2 records that are not joining, but because not all the input records are being retained despite the check box being checked, I cannot see which two records out of 400,000+ are not in both layers. 

LeilaJackson1_0-1706132340699.png

After completing the join, you can see there are only 418,430 records in the join table

LeilaJackson1_1-1706132400013.png

 

Please get this fixed ☹️

 

0 Kudos
AveryDurham1
New Contributor

I had this same problem. It was solved for me by roving the definition query that I had on the join table.

ChristineSeidel
New Contributor III

Yep, had the same issue trying to join a Table to a feature class (both stored in the same file geodatabase).  The feature class had a definition query and 'keep all input records' was not honored.  So, I exported the filtered feature class to a Table.  Then established the join from Table to Table (neither having a definition query) and then finally the 'keep all input records' when joining was a success!  ...though quite a nuisance of a work around to generate extra tables just to find the misfits.